// ---- Created with 3Dmigoto v1.3.16 on Thu Jul 23 16:07:53 2026
Texture3D<float4> t21 : register(t21);

Texture2D<float4> t20 : register(t20);

TextureCube<float4> t19 : register(t19);

Texture2D<float4> t18 : register(t18);

Texture2D<float4> t17 : register(t17);

Texture2D<float4> t16 : register(t16);

Texture2D<float4> t15 : register(t15);

Texture2D<float4> t14 : register(t14);

Texture2D<float4> t13 : register(t13);

Texture2D<float4> t12 : register(t12);

Texture2D<float4> t11 : register(t11);

Texture2D<float4> t10 : register(t10);

Texture3D<float4> t9 : register(t9);

Texture3D<float4> t8 : register(t8);

Texture3D<float4> t7 : register(t7);

Texture3D<float4> t6 : register(t6);

Texture3D<float4> t5 : register(t5);

Texture3D<float4> t4 : register(t4);

Texture2D<float4> t3 : register(t3);

Texture2D<float4> t2 : register(t2);

struct t1_t {
  float val[4];
};
StructuredBuffer<t1_t> t1 : register(t1);

struct t0_t {
  float val[1];
};
StructuredBuffer<t0_t> t0 : register(t0);

SamplerComparisonState s3_s : register(s3);

SamplerState s2_s : register(s2);

SamplerState s1_s : register(s1);

SamplerState s0_s : register(s0);

cbuffer cb7 : register(b7)
{
  float4 cb7[160];
}

cbuffer cb6 : register(b6)
{
  float4 cb6[21];
}

cbuffer cb5 : register(b5)
{
  float4 cb5[401];
}

cbuffer cb4 : register(b4)
{
  float4 cb4[2054];
}

cbuffer cb3 : register(b3)
{
  float4 cb3[3];
}

cbuffer cb2 : register(b2)
{
  float4 cb2[4094];
}

cbuffer cb1 : register(b1)
{
  float4 cb1[138];
}

cbuffer cb0 : register(b0)
{
  float4 cb0[45];
}




// 3Dmigoto declarations
#define cmp -
Texture1D<float4> IniParams : register(t120);


void main(
  float4 v0 : SV_Position0,
  float4 v1 : TEXCOORD0,
  float4 v2 : TEXCOORD1,
  float4 v3 : TEXCOORD2,
  float4 v4 : TEXCOORD3,
  float4 v5 : TEXCOORD4,
  float4 v6 : TEXCOORD5,
  float4 v7 : TEXCOORD6,
  float4 v8 : TEXCOORD7,
  float4 v9 : TEXCOORD8,
  nointerpolation uint v10 : TEXCOORD9,
  uint v11 : SV_IsFrontFace0,
  out float4 o0 : SV_Target0,
  out float4 o1 : SV_Target1)
{
  const float4 icb[] = { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000},
                              { 2, 1, -1.000000, 1.000000},
                              { 2, 1, 1.000000, 1.000000},
                              { 0, 2, 1.000000, -1.000000},
                              { 0, 2, 1.000000, 1.000000},
                              { 0, 1, 1.000000, 1.000000},
                              { 0, 1, -1.000000, 1.000000} };
  float4 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,r16,r17,r18,r19,r20,r21,r22,r23,r24,r25,r26,r27,r28,r29,r30,r31,r32,r33,r34,r35,r36,r37;
  uint4 bitmask, uiDest;
  float4 fDest;

  r0.x = cb0[0].z;
  r0.y = cb0[1].z;
  r0.z = cb0[2].z;
  r1.xyz = v2.xyz + r0.xyz;
  r1.xyz = cb1[4].www * r1.xyz + -v2.xyz;
  r0.w = dot(r1.xyz, r1.xyz);
  r1.w = max(9.99999994e-09, r0.w);
  r1.w = rsqrt(r1.w);
  r2.xyz = r1.xyz * r1.www;
  r2.w = (uint)v10.x << 4;
  r3.x = 16 & asint(cb2[r2.w+4].w);
  if (r3.x != 0) {
    r3.y = 2 + asint(cb2[r2.w+5].x);
    r4.x = t1[r3.y].val[12/4];
    r4.y = t1[cb2[r2.w+5].x].val[12/4];
  } else {
    r4.xy = cb2[r2.w+3].zx;
  }
  r5.xyzw = t16.SampleBias(s2_s, v1.xy, cb1[26].x).xyzw;
  r6.xyzw = t17.SampleBias(s2_s, v1.xy, cb1[26].x).xyzw;
  r3.y = 1 + -r6.w;
  r7.xyzw = cb6[6].xyzw * r5.xyzw;
  r8.xyz = cb6[4].zzz * r7.xyz;
  r3.z = dot(r8.xyz, float3(0.212672904,0.715152204,0.0721750036));
  r8.xyz = r7.xyz * cb6[4].zzz + -r3.zzz;
  r8.xyz = cb6[4].www * r8.xyz + r3.zzz;
  r9.xyz = t18.SampleBias(s2_s, v1.xy, cb1[26].x).xyw;
  r9.x = r9.z * r9.x;
  r3.zw = r9.xy * float2(2,2) + float2(-1,-1);
  r4.z = dot(r3.zw, r3.zw);
  r4.z = min(1, r4.z);
  r4.z = 1 + -r4.z;
  r4.z = sqrt(r4.z);
  r4.z = max(1.00000002e-16, r4.z);
  r3.zw = cb6[0].ww * r3.zw;
  r9.xyz = cb0[44].xyz + v2.xyz;
  r10.xz = r9.xz + -r4.yx;
  r10.y = 6.10351562e-05;
  r4.x = dot(r10.xyz, r10.xyz);
  r4.x = rsqrt(r4.x);
  r4.xyw = r10.xyz * r4.xxx;
  r10.xyz = v4.yzx * v3.zxy;
  r10.xyz = v3.yzx * v4.zxy + -r10.xyz;
  r10.xyz = v4.www * r10.xyz;
  r11.xyz = r10.xyz * r3.www;
  r11.xyz = r3.zzz * v4.xyz + r11.xyz;
  r11.xyz = r4.zzz * v3.xyz + r11.xyz;
  r3.z = cb6[1].y * 2 + -1;
  r3.z = v11.x ? 1 : r3.z;
  r3.w = dot(r11.xyz, r11.xyz);
  r3.w = max(1.17549435e-38, r3.w);
  r3.w = rsqrt(r3.w);
  r11.xyz = r11.xyz * r3.www;
  r12.xyz = r11.xyz * r3.zzz;
  r3.w = dot(v3.xyz, v3.xyz);
  r3.w = rsqrt(r3.w);
  r11.xzw = v3.xyz * r3.www;
  r11.xzw = r11.xzw * r3.zzz;
  r3.w = dot(v4.xyz, r12.xyz);
  r13.xyz = -r12.yzx * r3.www + v4.yzx;
  r3.w = dot(r13.xyz, r13.xyz);
  r3.w = rsqrt(r3.w);
  r13.xyz = r13.xyz * r3.www;
  r14.xy = (uint2)v0.xy;
  r3.w = cmp(0.5 < cb1[117].x);
  r3.w = r3.w ? cb1[117].y : cb2[r2.w+13].x;
  r4.z = (int)r3.w & 255;
  r15.x = (uint)r4.z;
  if (8 == 0) r16.x = 0; else if (8+8 < 32) {   r16.x = (uint)r3.w << (32-(8 + 8)); r16.x = (uint)r16.x >> (32-8);  } else r16.x = (uint)r3.w >> 8;
  if (8 == 0) r16.y = 0; else if (8+16 < 32) {   r16.y = (uint)r3.w << (32-(8 + 16)); r16.y = (uint)r16.y >> (32-8);  } else r16.y = (uint)r3.w >> 16;
  r15.yz = (uint2)r16.xy;
  r3.w = (uint)r3.w >> 24;
  r15.w = (uint)r3.w;
  r16.xyzw = float4(0.00392156886,0.00392156886,0.00392156886,0.00392156886) * r15.xyzw;
  r3.w = -cb2[r2.w+13].y + cb1[117].w;
  r2.w = cb1[117].x * r3.w + cb2[r2.w+13].y;
  r2.w = r2.w + -r9.y;
  r2.w = 0.200000003 + r2.w;
  r2.w = saturate(2.85714269 * r2.w);
  r3.w = r2.w * -2 + 3;
  r2.w = r2.w * r2.w;
  r2.w = r3.w * r2.w;
  r2.w = r2.w * r16.y;
  r3.w = max(r16.z, r2.w);
  r4.z = max(r16.x, r3.w);
  r6.w = -cb1[29].x + 1;
  r6.w = cb1[119].w * r6.w + cb1[29].x;
  r6.w = cb1[27].x * r6.w;
  r8.w = cmp(cb1[108].y < 0.5);
  if (r8.w != 0) {
    r17.xyz = cb0[6].xzy * -cb1[134].www + cb1[132].xzy;
    r17.xyz = -r17.xyz + r9.xzy;
    r8.w = max(abs(r17.x), abs(r17.y));
    r8.w = -464 + r8.w;
    r8.w = saturate(0.03125 * r8.w);
    r9.w = -208 + abs(r17.z);
    r9.w = saturate(0.03125 * r9.w);
    r8.w = max(r9.w, r8.w);
    r9.w = cmp(0.000000 != cb1[132].w);
    r10.w = cmp(r8.w < 1);
    r9.w = r9.w ? r10.w : 0;
    if (r9.w != 0) {
      r17.xyz = cb0[6].xzy * -cb1[134].yyy + cb1[132].xzy;
      r17.xyz = -r17.xyz + r9.xzy;
      r9.w = max(abs(r17.x), abs(r17.y));
      r9.w = -29 + r9.w;
      r9.w = saturate(0.5 * r9.w);
      r10.w = -13 + abs(r17.z);
      r10.w = saturate(0.5 * r10.w);
      r9.w = max(r10.w, r9.w);
      r10.w = cmp(r9.w < 1);
      if (r10.w != 0) {
        r17.xyz = r9.xyz * float3(2,2,2) + float3(0.5,0.5,0.5);
        r18.xyz = cb1[133].xyz * r17.xyz;
        r18.xyz = floor(r18.xyz);
        r17.xyz = r17.xyz * cb1[133].xyz + -r18.xyz;
        r18.xyw = t4.SampleLevel(s2_s, r17.xyz, 0).yzx;
        r10.w = 1 + -r9.w;
        r13.w = cb1[133].y * 0.5;
        r15.y = -cb1[133].y * 0.5 + 1;
        r13.w = max(r17.y, r13.w);
        r13.w = min(r13.w, r15.y);
        r17.w = 0.333333343 * r13.w;
        r19.xyzw = t5.SampleLevel(s1_s, r17.xwz, 0).xyzw;
        r13.w = r19.w * r10.w + r8.w;
        r20.xyz = float3(0,0.666666687,0) + r17.xwz;
        r20.xyz = t5.SampleLevel(s1_s, r20.xyz, 0).xyz;
        r20.xyz = r20.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r20.xyz = r20.xyz * r18.yyy;
        r20.w = r18.y;
        r20.xyzw = r20.xyzw * r10.wwww;
        r17.xyz = float3(0,0.333333343,0) + r17.xwz;
        r17.xyz = t5.SampleLevel(s1_s, r17.xyz, 0).xyz;
        r17.xyz = r17.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r17.xyz = r17.xyz * r18.xxx;
        r17.w = r18.x;
        r17.xyzw = r17.xyzw * r10.wwww;
        r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r18.xyz = r19.xyz * r18.www;
        r18.xyzw = r18.xyzw * r10.wwww;
      } else {
        r20.xyzw = float4(0,0,0,0);
        r17.xyzw = float4(0,0,0,0);
        r18.xyzw = float4(0,0,0,0);
        r13.w = r8.w;
      }
      r19.xyz = cb0[6].xzy * -cb1[134].zzz + cb1[132].xzy;
      r19.xyz = -r19.xyz + r9.xzy;
      r10.w = max(abs(r19.x), abs(r19.y));
      r10.w = -116 + r10.w;
      r10.w = saturate(0.125 * r10.w);
      r15.y = -52 + abs(r19.z);
      r15.y = saturate(0.125 * r15.y);
      r10.w = max(r15.y, r10.w);
      r15.y = cmp(r10.w < 1);
      if (r15.y != 0) {
        r19.xyz = r9.xyz * float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5);
        r21.xyz = cb1[133].xyz * r19.xyz;
        r21.xyz = floor(r21.xyz);
        r19.xyz = r19.xyz * cb1[133].xyz + -r21.xyz;
        r21.xyw = t6.SampleLevel(s2_s, r19.xyz, 0).yzx;
        r15.y = 1 + -r10.w;
        r9.w = r15.y * r9.w;
        r15.y = cb1[133].y * 0.5;
        r15.z = -cb1[133].y * 0.5 + 1;
        r15.y = max(r19.y, r15.y);
        r15.y = min(r15.y, r15.z);
        r19.w = 0.333333343 * r15.y;
        r22.xyzw = t7.SampleLevel(s1_s, r19.xwz, 0).xyzw;
        r13.w = r22.w * r9.w + r13.w;
        r23.xyz = float3(0,0.666666687,0) + r19.xwz;
        r23.xyz = t7.SampleLevel(s1_s, r23.xyz, 0).xyz;
        r23.xyz = r23.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r23.xyz = r23.xyz * r21.yyy;
        r23.w = r21.y;
        r20.xyzw = r23.xyzw * r9.wwww + r20.xyzw;
        r19.xyz = float3(0,0.333333343,0) + r19.xwz;
        r19.xyz = t7.SampleLevel(s1_s, r19.xyz, 0).xyz;
        r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r19.xyz = r19.xyz * r21.xxx;
        r19.w = r21.x;
        r17.xyzw = r19.xyzw * r9.wwww + r17.xyzw;
        r19.xyz = r22.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r21.xyz = r19.xyz * r21.www;
        r18.xyzw = r21.xyzw * r9.wwww + r18.xyzw;
      }
      r9.w = cmp(0 < r10.w);
      if (r9.w != 0) {
        r19.xyz = r9.xyz * float3(0.125,0.125,0.125) + float3(0.5,0.5,0.5);
        r21.xyz = cb1[133].xyz * r19.xyz;
        r22.xyz = cb1[133].xyz * float3(0.5,0.5,0.5);
        r21.xyz = floor(r21.xyz);
        r19.xyz = r19.xyz * cb1[133].xyz + -r21.xyz;
        r21.xyz = -cb1[133].xyz * float3(0.5,0.5,0.5) + float3(1,1,1);
        r19.xyz = max(r19.xyz, r22.xyz);
        r19.xyz = min(r19.xyz, r21.xyz);
        r23.xyw = t8.SampleLevel(s2_s, r19.xyz, 0).yzx;
        r9.w = 1 + -r8.w;
        r9.w = r10.w * r9.w;
        r10.w = max(r19.y, r22.y);
        r10.w = min(r10.w, r21.y);
        r19.w = 0.333333343 * r10.w;
        r21.xyzw = t9.SampleLevel(s1_s, r19.xwz, 0).xyzw;
        r22.xyz = float3(0,0.666666687,0) + r19.xwz;
        r22.xyz = t9.SampleLevel(s1_s, r22.xyz, 0).xyz;
        r22.xyz = r22.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r22.xyz = r22.xyz * r23.yyy;
        r22.w = r23.y;
        r20.xyzw = r22.xyzw * r9.wwww + r20.xyzw;
        r19.xyz = float3(0,0.333333343,0) + r19.xwz;
        r19.xyz = t9.SampleLevel(s1_s, r19.xyz, 0).xyz;
        r19.xyz = r19.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r19.xyz = r19.xyz * r23.xxx;
        r19.w = r23.x;
        r17.xyzw = r19.xyzw * r9.wwww + r17.xyzw;
        r19.xyz = r21.xyz * float3(4,4,4) + float3(-2,-2,-2);
        r23.xyz = r19.xyz * r23.www;
        r18.xyzw = r23.xyzw * r9.wwww + r18.xyzw;
        r13.w = r21.w * r9.w + r13.w;
      }
      r9.w = saturate(r13.w * 2 + -1);
      r19.x = r9.w + -r8.w;
      r8.w = r9.w + r8.w;
      r19.y = 0.5 * r8.w;
    } else {
      r20.xyzw = float4(0,0,0,0);
      r17.xyzw = float4(0,0,0,0);
      r18.xyzw = float4(0,0,0,0);
      r19.xy = float2(0,1);
    }
    r21.xyzw = cb1[135].xyzw * r19.yyyx;
    r21.y = r21.w * 0.5 + r21.y;
    r15.yz = cb1[135].wy * r19.yx;
    r21.w = r15.z * 0.375 + r15.y;
    r18.xyzw = r21.xyzw + r18.xyzw;
    r21.xyzw = cb1[136].xyzw * r19.yyyx;
    r21.y = r21.w * 0.5 + r21.y;
    r15.yz = cb1[136].wy * r19.yx;
    r21.w = r15.z * 0.375 + r15.y;
    r17.xyzw = r21.xyzw + r17.xyzw;
    r21.xyzw = cb1[137].xyzw * r19.yyyx;
    r21.y = r21.w * 0.5 + r21.y;
    r15.yz = cb1[137].wy * r19.yx;
    r21.w = r15.z * 0.375 + r15.y;
    r19.xyzw = r21.xyzw + r20.xyzw;
    r12.w = 1;
    r20.x = dot(r18.xyzw, r12.xyzw);
    r20.y = dot(r17.xyzw, r12.xyzw);
    r20.z = dot(r19.xyzw, r12.xyzw);
    r20.xyz = max(float3(0,0,0), r20.xyz);
    r21.xyz = r20.xyz * r6.www;
    r22.xyz = float3(0.715200007,0.715200007,0.715200007) * r17.xyz;
    r22.xyz = r18.xyz * float3(0.212599993,0.212599993,0.212599993) + r22.xyz;
    r22.xyz = r19.xyz * float3(0.0722000003,0.0722000003,0.0722000003) + r22.xyz;
    r8.w = dot(r22.xyz, r22.xyz);
    r8.w = max(1.17549435e-38, r8.w);
    r8.w = rsqrt(r8.w);
    r22.xyz = r22.xyz * r8.www;
    r22.y = abs(r22.y);
    r22.w = 1;
    r18.x = dot(r18.xyzw, r22.xyzw);
    r18.y = dot(r17.xyzw, r22.xyzw);
    r18.z = dot(r19.xyzw, r22.xyzw);
    r17.xyz = max(float3(0,0,0), r18.xyz);
    r8.w = cmp(r21.y >= r21.z);
    r8.w = r8.w ? 1.000000 : 0;
    r18.xy = r21.zy;
    r18.zw = float2(-1,0.666666687);
    r19.xy = r20.yz * r6.ww + -r18.xy;
    r19.zw = float2(1,-1);
    r18.xyzw = r8.wwww * r19.xyzw + r18.xyzw;
    r8.w = cmp(r21.x >= r18.x);
    r8.w = r8.w ? 1.000000 : 0;
    r19.xyz = r18.xyw;
    r19.w = r21.x;
    r18.xyw = r19.wyx;
    r18.xyzw = r18.xyzw + -r19.xyzw;
    r18.xyzw = r8.wwww * r18.xyzw + r19.xyzw;
    r8.w = min(r18.w, r18.y);
    r8.w = r18.x + -r8.w;
    r9.w = r18.w + -r18.y;
    r10.w = r8.w * 6 + 9.99999975e-05;
    r9.w = r9.w / r10.w;
    r9.w = r18.z + r9.w;
    r9.w = frac(abs(r9.w));
    r10.w = 9.99999975e-05 + r18.x;
    r8.w = r8.w / r10.w;
    r19.xyzw = float4(-0.5,1,0.666666687,0.333333343) + r9.wwww;
    r9.w = -0.449999988 + abs(r19.x);
    r9.w = saturate(-10.000001 * r9.w);
    r10.w = r9.w * -2 + 3;
    r9.w = r9.w * r9.w;
    r9.w = r10.w * r9.w;
    r9.w = r9.w * -0.349999994 + 0.699999988;
    r18.x = saturate(r18.x);
    r9.w = r18.x * r9.w;
    r8.w = min(r9.w, r8.w);
    r9.w = 2 + -r8.w;
    r9.w = 2 / r9.w;
    r18.xyz = frac(r19.yzw);
    r18.xyz = r18.xyz * float3(6,6,6) + float3(-3,-3,-3);
    r18.xyz = saturate(float3(-1,-1,-1) + abs(r18.xyz));
    r18.xyz = float3(-1,-1,-1) + r18.xyz;
    r18.xyz = r8.www * r18.xyz + float3(1,1,1);
    r18.xyz = r18.xyz * r9.www;
    r8.w = max(r17.x, r17.y);
    r8.w = max(r8.w, r17.z);
    r6.w = r8.w * r6.w;
    r8.w = 1;
  } else {
    r22.xyz = float3(0,0,0);
    r21.xyz = float3(1,1,1);
    r18.xyz = cb1[109].xyz;
    r8.w = 0;
  }
  r9.w = -cb6[18].z + 1;
  r9.w = r4.z * r9.w + cb6[18].z;
  r9.w = cb6[18].x * r9.w;
  r10.w = cmp(0.5 < cb6[19].w);
  if (r10.w != 0) {
    r17.xyzw = t11.SampleBias(s2_s, v1.xy, cb1[26].x).xyzw;
    r10.w = 1 + -r17.z;
    r10.w = r10.w + -r3.y;
    r3.y = r4.z * r10.w + r3.y;
    r9.w = r17.x * r9.w;
    r10.w = r17.y * 2 + -1;
    r10.w = max(-0.949999988, r10.w);
    r17.x = min(0.949999988, r10.w);
    r10.w = -r5.w * cb6[6].w + r17.w;
    r10.w = r4.z * r10.w + r7.w;
    r10.w = 1 + r10.w;
    r17.y = saturate(-cb6[17].w + r10.w);
  } else {
    r10.w = saturate(0.5 * r7.w);
    r12.w = -cb6[20].x + 0.5;
    r10.w = r10.w * r12.w + cb6[20].x;
    r17.x = -r10.w;
    r5.w = r5.w * cb6[6].w + 1;
    r17.y = saturate(-cb6[17].w + r5.w);
  }
  r19.xyz = cb6[16].xyz + -cb6[15].xyz;
  r19.xyz = r4.zzz * r19.xyz + cb6[15].xyz;
  r5.w = saturate(dot(r12.xyz, r2.xyz));
  r10.w = 1.04999995 + -r5.w;
  r12.w = r17.y + r17.y;
  r10.w = log2(r10.w);
  r10.w = r12.w * r10.w;
  r10.w = exp2(r10.w);
  r10.w = min(1, r10.w);
  r12.w = cb6[19].x + -cb6[18].w;
  r10.w = r10.w * r12.w + cb6[18].w;
  r20.xyz = r19.xyz * r7.xyz;
  r23.xyz = -r7.xyz * r19.xyz + cb6[17].xyz;
  r20.xyz = r10.www * r23.xyz + r20.xyz;
  r23.xyz = r19.xyz * r8.xyz;
  r19.xyz = -r8.xyz * r19.xyz + cb6[17].xyz;
  r19.xyz = r10.www * r19.xyz + r23.xyz;
  r10.w = r15.x * 0.00392156886 + r3.w;
  r10.w = min(1, r10.w);
  r10.w = -cb6[5].x + r10.w;
  r10.w = cmp(0.00999999978 < r10.w);
  if (r10.w != 0) {
    r10.w = cmp(2.54999971 >= r15.x);
    r10.w = r10.w ? 1.000000 : 0;
    r12.w = cmp(r3.w >= 0.00999999978);
    r12.w = r12.w ? 1.000000 : 0;
    r10.w = r12.w * r10.w;
    r10.w = cmp(r10.w != 0.000000);
    r23.xyzw = float4(1,-1,1,1) * v9.xyxz;
    r23.xyzw = r3.xxxx ? r23.xyzw : v9.xzxy;
    r24.xyzw = cb1[117].zzzz * r23.xyzw;
    r15.yz = r3.xx ? v7.zy : v7.yz;
    r25.xyz = v3.xyz * v3.yyy + float3(0,-1,0);
    r12.w = dot(r25.xyz, v4.xyz);
    r26.xyz = v8.yzx * v7.zxy;
    r26.xyz = v7.yzx * v8.zxy + -r26.xyz;
    r26.xyz = v8.www * r26.xyz;
    r10.x = dot(r25.xyz, r10.xyz);
    r10.xyz = r26.xyz * r10.xxx;
    r10.xyz = v8.xyz * r12.www + r10.xyz;
    r12.w = dot(r25.xyz, v3.xyz);
    r10.xyz = v7.xyz * r12.www + r10.xyz;
    r25.xyz = float3(1,1,-1) * r10.xzy;
    r10.xyz = r3.xxx ? r25.xyz : r10.xyz;
    r15.x = v7.x;
    r25.xyz = float3(-0.200000003,-0.200000003,-0.200000003) + abs(r15.xyz);
    r26.xyz = r25.xyz * r25.xyz;
    r26.xyz = r26.xyz * r25.xyz;
    r26.xyz = max(float3(6.10351562e-05,6.10351562e-05,6.10351562e-05), r26.xyz);
    r12.w = dot(r26.xyz, float3(1,1,1));
    r26.xyz = r26.xyz / r12.www;
    r27.xyzw = t12.SampleBias(s2_s, r24.zy, cb1[26].x).xyzw;
    r28.xyzw = t12.SampleBias(s2_s, r24.zw, cb1[26].x).xyzw;
    r29.xyzw = t12.SampleBias(s2_s, r24.yw, cb1[26].x).xyzw;
    r28.xyzw = r28.xyzw * r26.zzzz;
    r27.xyzw = r27.xyzw * r26.yyyy + r28.xyzw;
    r26.xyzw = r29.xyzw * r26.xxxx + r27.xyzw;
    r16.yz = r26.xy * float2(2,2) + float2(-1,-1);
    r12.w = 1 + -r3.w;
    r17.zw = r10.ww ? r12.ww : float2(3,4.34000015);
    r3.w = r10.w ? r3.w : r16.x;
    r3.w = 1 + -r3.w;
    r12.w = r10.w ? 1 : cb1[20].x;
    r27.xyz = float3(32,32,32) * r24.yzw;
    r25.xyz = max(float3(0,0,0), r25.xyz);
    r25.xyz = r25.xyz * r25.xyz;
    r28.xyz = r25.xyz * r25.xyz;
    r28.xyz = r28.xyz * r28.xyz;
    r25.xyz = r28.xyz * r25.xyz;
    r13.w = dot(r25.xyz, float3(1,1,1));
    r13.w = max(6.10351562e-05, r13.w);
    r25.xyz = r25.xyz / r13.www;
    r28.xyzw = floor(r27.yxyz);
    r29.xyzw = float4(123.339996,456.209991,123.339996,456.209991) * r28.xyzw;
    r29.xyzw = frac(r29.xyzw);
    r30.xyzw = float4(34.3450012,34.3450012,34.3450012,34.3450012) + r29.xyzw;
    r13.w = dot(r29.xy, r30.xy);
    r26.xy = r29.xy + r13.ww;
    r13.w = r26.x * r26.y;
    r15.y = r26.x + r26.y;
    r13.w = frac(r13.w);
    r15.y = frac(r15.y);
    r31.xyzw = float4(114.514,114.514,114.514,114.514) + r28.xyzw;
    r31.xyzw = float4(123.339996,456.209991,123.339996,456.209991) * r31.xyzw;
    r31.xyzw = frac(r31.xyzw);
    r32.xyzw = float4(34.3450012,34.3450012,34.3450012,34.3450012) + r31.xyzw;
    r18.w = dot(r31.xy, r32.xy);
    r26.xy = r31.xy + r18.ww;
    r18.w = r26.x * r26.y;
    r19.w = r26.x + r26.y;
    r26.x = frac(r18.w);
    r26.y = frac(r19.w);
    r18.w = r13.w * 0.399999976 + 0.600000024;
    r19.w = 0.25 * r18.w;
    r28.xyzw = r24.zyzw * float4(32,32,32,32) + -r28.xyzw;
    r27.yw = r26.xy * float2(2,2) + float2(-1,-1);
    r27.yw = r27.yw * float2(0.25,0.25) + r28.xy;
    r27.yw = float2(-0.5,-0.5) + r27.yw;
    r20.w = dot(r10.xz, r10.xz);
    r21.w = cmp(9.99999975e-06 >= r20.w);
    r20.w = rsqrt(r20.w);
    r33.xy = r20.ww * r10.xz;
    r33.zw = -r33.yy;
    r28.x = dot(r27.wy, r33.xz);
    r20.w = dot(r27.yw, r33.xy);
    r28.y = -r20.w;
    r27.yw = r21.ww ? r27.yw : r28.xy;
    r28.x = 1.25 * r27.y;
    r20.w = cmp(r27.w < 0);
    r20.w = r20.w ? 1.25 : 0.75;
    r28.y = r27.w * r20.w;
    r20.w = dot(r28.xy, r28.xy);
    r20.w = sqrt(r20.w);
    r13.w = r12.w * r17.z + r13.w;
    r22.w = frac(r13.w);
    r13.w = saturate(r13.w);
    r13.w = r13.w * 0.629999995 + 0.219999999;
    r13.w = r10.w ? r13.w : r22.w;
    r27.yw = float2(-0.200000003,-0.850000024) + r13.ww;
    r27.yw = saturate(float2(50.0000114,-3.33333325) * r27.yw);
    r29.xy = r27.yw * float2(-2,-2) + float2(3,3);
    r27.yw = r27.yw * r27.yw;
    r27.yw = r29.xy * r27.yw;
    r13.w = r27.y * r27.w;
    r22.w = -r18.w * 0.25 + r20.w;
    r23.x = 1 / -r19.w;
    r22.w = saturate(r23.x * r22.w);
    r23.x = r22.w * -2 + 3;
    r22.w = r22.w * r22.w;
    r22.w = r23.x * r22.w;
    r22.w = cmp(r22.w >= 0.00100000005);
    r22.w = r22.w ? 1.000000 : 0;
    r13.w = r22.w * r13.w;
    r22.w = -0.100000001 + r15.y;
    r22.w = cmp(r22.w >= r3.w);
    r22.w = r22.w ? 1.000000 : 0;
    r13.w = r22.w * r13.w;
    r27.yw = r28.xy / r19.ww;
    r27.yw = max(float2(-1,-1), r27.yw);
    r27.yw = min(float2(1,1), r27.yw);
    r22.w = r26.x * 0.25 + 0.25;
    r26.xy = r27.yw * r22.ww;
    r26.xy = r26.xy * r13.ww;
    r22.w = r13.w * r25.y;
    r23.x = dot(r29.zw, r30.zw);
    r27.yw = r29.zw + r23.xx;
    r23.x = r27.y * r27.w;
    r25.w = r27.y + r27.w;
    r23.x = frac(r23.x);
    r25.w = frac(r25.w);
    r27.y = dot(r31.zw, r32.zw);
    r27.yw = r31.zw + r27.yy;
    r28.x = r27.y * r27.w;
    r27.y = r27.y + r27.w;
    r28.x = frac(r28.x);
    r28.y = frac(r27.y);
    r27.y = r23.x * 0.399999976 + 0.600000024;
    r27.w = 0.25 * r27.y;
    r29.xy = r28.xy * float2(2,2) + float2(-1,-1);
    r28.yz = r29.xy * float2(0.25,0.25) + r28.zw;
    r28.yz = float2(-0.5,-0.5) + r28.yz;
    r28.w = dot(r10.xy, r10.xy);
    r29.x = cmp(9.99999975e-06 >= r28.w);
    r28.w = rsqrt(r28.w);
    r30.xy = r28.ww * r10.xy;
    r30.zw = -r30.yy;
    r31.x = dot(r28.zy, r30.xz);
    r10.x = dot(r28.yz, r30.xy);
    r31.y = -r10.x;
    r28.yz = r29.xx ? r28.yz : r31.xy;
    r31.x = 1.25 * r28.y;
    r10.x = cmp(r28.z < 0);
    r10.x = r10.x ? 1.25 : 0.75;
    r31.y = r28.z * r10.x;
    r10.x = dot(r31.xy, r31.xy);
    r10.x = sqrt(r10.x);
    r23.x = r12.w * r17.z + r23.x;
    r28.y = frac(r23.x);
    r23.x = saturate(r23.x);
    r23.x = r23.x * 0.629999995 + 0.219999999;
    r23.x = r10.w ? r23.x : r28.y;
    r28.yz = float2(-0.200000003,-0.850000024) + r23.xx;
    r28.yz = saturate(float2(50.0000114,-3.33333325) * r28.yz);
    r29.yz = r28.yz * float2(-2,-2) + float2(3,3);
    r28.yz = r28.yz * r28.yz;
    r28.yz = r29.yz * r28.yz;
    r23.x = r28.y * r28.z;
    r28.y = -r27.y * 0.25 + r10.x;
    r28.z = 1 / -r27.w;
    r28.y = saturate(r28.y * r28.z);
    r28.z = r28.y * -2 + 3;
    r28.y = r28.y * r28.y;
    r28.y = r28.z * r28.y;
    r28.y = cmp(r28.y >= 0.00100000005);
    r28.y = r28.y ? 1.000000 : 0;
    r23.x = r28.y * r23.x;
    r28.y = -0.100000001 + r25.w;
    r28.y = cmp(r28.y >= r3.w);
    r28.y = r28.y ? 1.000000 : 0;
    r23.x = r28.y * r23.x;
    r28.yz = r31.xy / r27.ww;
    r28.yz = max(float2(-1,-1), r28.yz);
    r28.yz = min(float2(1,1), r28.yz);
    r28.x = r28.x * 0.25 + 0.25;
    r28.xy = r28.yz * r28.xx;
    r28.xy = r28.xy * r23.xx;
    r28.xy = r28.xy * r25.zz;
    r28.z = r23.x * r25.z;
    r27.xz = floor(r27.xz);
    r29.yz = float2(123.339996,456.209991) * r27.xz;
    r29.yz = frac(r29.yz);
    r31.xy = float2(34.3450012,34.3450012) + r29.yz;
    r28.w = dot(r29.yz, r31.xy);
    r29.yz = r29.yz + r28.ww;
    r28.w = r29.y * r29.z;
    r29.y = r29.y + r29.z;
    r28.w = frac(r28.w);
    r29.zw = float2(114.514,114.514) + r27.xz;
    r29.zw = float2(123.339996,456.209991) * r29.zw;
    r29.yzw = frac(r29.yzw);
    r31.xy = float2(34.3450012,34.3450012) + r29.zw;
    r30.z = dot(r29.zw, r31.xy);
    r29.zw = r30.zz + r29.zw;
    r30.z = r29.z * r29.w;
    r29.z = r29.z + r29.w;
    r31.x = frac(r30.z);
    r31.y = frac(r29.z);
    r29.z = r28.w * 0.399999976 + 0.600000024;
    r29.w = 0.25 * r29.z;
    r27.xz = r24.yw * float2(32,32) + -r27.xz;
    r31.yz = r31.xy * float2(2,2) + float2(-1,-1);
    r27.xz = r31.yz * float2(0.25,0.25) + r27.xz;
    r27.xz = float2(-0.5,-0.5) + r27.xz;
    r30.z = dot(r10.yz, r10.yz);
    r31.y = cmp(9.99999975e-06 >= r30.z);
    r30.z = rsqrt(r30.z);
    r32.xy = r30.zz * r10.zy;
    r32.zw = -r32.yy;
    r34.x = dot(r27.zx, r32.xz);
    r10.y = dot(r27.xz, r32.xy);
    r34.y = -r10.y;
    r10.yz = r31.yy ? r27.xz : r34.xy;
    r34.x = 1.25 * r10.y;
    r10.y = cmp(r10.z < 0);
    r10.y = r10.y ? 1.25 : 0.75;
    r34.y = r10.z * r10.y;
    r10.y = dot(r34.xy, r34.xy);
    r10.y = sqrt(r10.y);
    r10.z = r12.w * r17.z + r28.w;
    r17.z = frac(r10.z);
    r10.z = saturate(r10.z);
    r10.z = r10.z * 0.629999995 + 0.219999999;
    r10.z = r10.w ? r10.z : r17.z;
    r27.xz = float2(-0.200000003,-0.850000024) + r10.zz;
    r27.xz = saturate(float2(50.0000114,-3.33333325) * r27.xz);
    r31.zw = r27.xz * float2(-2,-2) + float2(3,3);
    r27.xz = r27.xz * r27.xz;
    r27.xz = r31.zw * r27.xz;
    r10.z = r27.x * r27.z;
    r17.z = -r29.z * 0.25 + r10.y;
    r27.x = 1 / -r29.w;
    r17.z = saturate(r27.x * r17.z);
    r27.x = r17.z * -2 + 3;
    r17.z = r17.z * r17.z;
    r17.z = r27.x * r17.z;
    r17.z = cmp(r17.z >= 0.00100000005);
    r17.z = r17.z ? 1.000000 : 0;
    r10.z = r17.z * r10.z;
    r17.z = -0.100000001 + r29.y;
    r17.z = cmp(r17.z >= r3.w);
    r17.z = r17.z ? 1.000000 : 0;
    r10.z = r17.z * r10.z;
    r27.xz = r34.xy / r29.ww;
    r27.xz = max(float2(-1,-1), r27.xz);
    r27.xz = min(float2(1,1), r27.xz);
    r17.z = r31.x * 0.25 + 0.25;
    r27.xz = r27.xz * r17.zz;
    r27.xz = r27.xz * r10.zz;
    r17.z = r10.z * r25.x;
    r34.x = r19.w * r13.w;
    r34.y = r18.w * 0.25 + -r20.w;
    r31.xz = r34.xy * r25.yy;
    r34.x = r27.w * r23.x;
    r34.y = r27.y * 0.25 + -r10.x;
    r27.yw = r34.xy * r25.zz;
    r34.x = r29.w * r10.z;
    r34.y = r29.z * 0.25 + -r10.y;
    r10.xy = r34.xy * r25.xx;
    r10.xy = max(r27.yw, r10.xy);
    r10.xy = max(r31.xz, r10.xy);
    r10.z = max(r28.z, r22.w);
    r34.x = max(r17.z, r10.z);
    r26.xy = r26.xy * r25.yy + r28.xy;
    r26.xy = r27.xz * r25.xx + r26.xy;
    r10.z = cmp(r10.z < r17.z);
    r13.w = cmp(r22.w < r28.z);
    r13.w = r13.w ? r25.w : r15.y;
    r34.y = r10.z ? r29.y : r13.w;
    r27.xyzw = float4(64.4000015,64.4000015,64.4000015,64.4000015) * r24.xyzw;
    r27.xyzw = floor(r27.xyzw);
    r28.xyzw = float4(123.339996,456.209991,123.339996,456.209991) * r27.xyzw;
    r28.xyzw = frac(r28.xyzw);
    r35.xyzw = float4(34.3450012,34.3450012,34.3450012,34.3450012) + r28.xyzw;
    r10.z = dot(r28.xy, r35.xy);
    r28.xy = r28.xy + r10.zz;
    r10.z = r28.x * r28.y;
    r13.w = r28.x + r28.y;
    r10.z = frac(r10.z);
    r13.w = frac(r13.w);
    r36.xyzw = float4(114.514,114.514,114.514,114.514) + r27.xyzw;
    r36.xyzw = float4(123.339996,456.209991,123.339996,456.209991) * r36.xyzw;
    r36.xyzw = frac(r36.xyzw);
    r37.xyzw = float4(34.3450012,34.3450012,34.3450012,34.3450012) + r36.xyzw;
    r15.y = dot(r36.xy, r37.xy);
    r28.xy = r36.xy + r15.yy;
    r15.y = r28.x * r28.y;
    r17.z = r28.x + r28.y;
    r28.x = frac(r15.y);
    r28.y = frac(r17.z);
    r15.y = r10.z * 0.399999976 + 0.600000024;
    r17.z = 0.349999994 * r15.y;
    r27.xyzw = r24.xyzw * float4(64.4000015,64.4000015,64.4000015,64.4000015) + -r27.xyzw;
    r29.yz = r28.xy * float2(2,2) + float2(-1,-1);
    r27.xy = r29.yz * float2(0.178571433,0.178571433) + r27.xy;
    r27.xy = float2(-0.5,-0.5) + r27.xy;
    r35.x = dot(r27.yx, r33.xw);
    r18.w = dot(r27.xy, r33.xy);
    r35.y = -r18.w;
    r27.xy = r21.ww ? r27.xy : r35.xy;
    r33.x = 1.25 * r27.x;
    r18.w = cmp(r27.y < 0);
    r18.w = r18.w ? 1.25 : 0.75;
    r33.y = r27.y * r18.w;
    r18.w = dot(r33.xy, r33.xy);
    r18.w = sqrt(r18.w);
    r10.z = r12.w * r17.w + r10.z;
    r19.w = frac(r10.z);
    r10.z = saturate(r10.z);
    r10.z = r10.z * 0.629999995 + 0.219999999;
    r10.z = r10.w ? r10.z : r19.w;
    r27.xy = float2(-0.200000003,-0.850000024) + r10.zz;
    r27.xy = saturate(float2(50.0000114,-3.33333325) * r27.xy);
    r29.yz = r27.xy * float2(-2,-2) + float2(3,3);
    r27.xy = r27.xy * r27.xy;
    r27.xy = r29.yz * r27.xy;
    r10.z = r27.x * r27.y;
    r19.w = -r15.y * 0.349999994 + r18.w;
    r20.w = 1 / -r17.z;
    r19.w = saturate(r20.w * r19.w);
    r20.w = r19.w * -2 + 3;
    r19.w = r19.w * r19.w;
    r19.w = r20.w * r19.w;
    r19.w = cmp(r19.w >= 0.00100000005);
    r19.w = r19.w ? 1.000000 : 0;
    r10.z = r19.w * r10.z;
    r19.w = -0.100000001 + r13.w;
    r19.w = cmp(r19.w >= r3.w);
    r19.w = r19.w ? 1.000000 : 0;
    r10.z = r19.w * r10.z;
    r27.xy = r33.xy / r17.zz;
    r27.xy = max(float2(-1,-1), r27.xy);
    r27.xy = min(float2(1,1), r27.xy);
    r19.w = r28.x * 0.25 + 0.25;
    r27.xy = r27.xy * r19.ww;
    r27.xy = r27.xy * r10.zz;
    r19.w = r10.z * r25.y;
    r20.w = dot(r28.zw, r35.zw);
    r28.xy = r28.zw + r20.ww;
    r20.w = r28.x * r28.y;
    r21.w = r28.x + r28.y;
    r20.w = frac(r20.w);
    r21.w = frac(r21.w);
    r22.w = dot(r36.zw, r37.zw);
    r28.xy = r36.zw + r22.ww;
    r22.w = r28.x * r28.y;
    r23.x = r28.x + r28.y;
    r28.x = frac(r22.w);
    r28.y = frac(r23.x);
    r22.w = r20.w * 0.399999976 + 0.600000024;
    r23.x = 0.349999994 * r22.w;
    r28.yz = r28.xy * float2(2,2) + float2(-1,-1);
    r27.zw = r28.yz * float2(0.178571433,0.178571433) + r27.zw;
    r27.zw = float2(-0.5,-0.5) + r27.zw;
    r33.x = dot(r27.wz, r30.xw);
    r24.x = dot(r27.zw, r30.xy);
    r33.y = -r24.x;
    r27.zw = r29.xx ? r27.zw : r33.xy;
    r29.x = 1.25 * r27.z;
    r24.x = cmp(r27.w < 0);
    r24.x = r24.x ? 1.25 : 0.75;
    r29.y = r27.w * r24.x;
    r24.x = dot(r29.xy, r29.xy);
    r24.x = sqrt(r24.x);
    r20.w = r12.w * r17.w + r20.w;
    r25.w = frac(r20.w);
    r20.w = saturate(r20.w);
    r20.w = r20.w * 0.629999995 + 0.219999999;
    r20.w = r10.w ? r20.w : r25.w;
    r27.zw = float2(-0.200000003,-0.850000024) + r20.ww;
    r27.zw = saturate(float2(50.0000114,-3.33333325) * r27.zw);
    r28.yz = r27.zw * float2(-2,-2) + float2(3,3);
    r27.zw = r27.zw * r27.zw;
    r27.zw = r28.yz * r27.zw;
    r20.w = r27.z * r27.w;
    r25.w = -r22.w * 0.349999994 + r24.x;
    r27.z = 1 / -r23.x;
    r25.w = saturate(r27.z * r25.w);
    r27.z = r25.w * -2 + 3;
    r25.w = r25.w * r25.w;
    r25.w = r27.z * r25.w;
    r25.w = cmp(r25.w >= 0.00100000005);
    r25.w = r25.w ? 1.000000 : 0;
    r20.w = r25.w * r20.w;
    r25.w = -0.100000001 + r21.w;
    r25.w = cmp(r25.w >= r3.w);
    r25.w = r25.w ? 1.000000 : 0;
    r20.w = r25.w * r20.w;
    r27.zw = r29.xy / r23.xx;
    r27.zw = max(float2(-1,-1), r27.zw);
    r27.zw = min(float2(1,1), r27.zw);
    r25.w = r28.x * 0.25 + 0.25;
    r27.zw = r27.zw * r25.ww;
    r27.zw = r27.zw * r20.ww;
    r27.zw = r27.zw * r25.zz;
    r25.w = r20.w * r25.z;
    r28.xy = float2(64.4000015,64.4000015) * r24.yw;
    r28.xy = floor(r28.xy);
    r28.zw = float2(123.339996,456.209991) * r28.xy;
    r28.zw = frac(r28.zw);
    r29.xy = float2(34.3450012,34.3450012) + r28.zw;
    r29.x = dot(r28.zw, r29.xy);
    r28.zw = r29.xx + r28.zw;
    r29.x = r28.z * r28.w;
    r28.z = r28.z + r28.w;
    r28.w = frac(r29.x);
    r28.z = frac(r28.z);
    r29.xy = float2(114.514,114.514) + r28.xy;
    r29.xy = float2(123.339996,456.209991) * r29.xy;
    r29.xy = frac(r29.xy);
    r29.zw = float2(34.3450012,34.3450012) + r29.xy;
    r29.z = dot(r29.xy, r29.zw);
    r29.xy = r29.xy + r29.zz;
    r29.z = r29.x * r29.y;
    r29.x = r29.x + r29.y;
    r30.xy = frac(r29.zx);
    r29.x = r28.w * 0.399999976 + 0.600000024;
    r29.y = 0.349999994 * r29.x;
    r28.xy = r24.yw * float2(64.4000015,64.4000015) + -r28.xy;
    r29.zw = r30.xy * float2(2,2) + float2(-1,-1);
    r28.xy = r29.zw * float2(0.178571433,0.178571433) + r28.xy;
    r28.xy = float2(-0.5,-0.5) + r28.xy;
    r33.x = dot(r28.yx, r32.xw);
    r29.z = dot(r28.xy, r32.xy);
    r33.y = -r29.z;
    r28.xy = r31.yy ? r28.xy : r33.xy;
    r31.x = 1.25 * r28.x;
    r28.x = cmp(r28.y < 0);
    r28.x = r28.x ? 1.25 : 0.75;
    r31.y = r28.y * r28.x;
    r28.x = dot(r31.xy, r31.xy);
    r28.x = sqrt(r28.x);
    r12.w = r12.w * r17.w + r28.w;
    r17.w = frac(r12.w);
    r12.w = saturate(r12.w);
    r12.w = r12.w * 0.629999995 + 0.219999999;
    r10.w = r10.w ? r12.w : r17.w;
    r28.yw = float2(-0.200000003,-0.850000024) + r10.ww;
    r28.yw = saturate(float2(50.0000114,-3.33333325) * r28.yw);
    r29.zw = r28.yw * float2(-2,-2) + float2(3,3);
    r28.yw = r28.yw * r28.yw;
    r28.yw = r29.zw * r28.yw;
    r10.w = r28.y * r28.w;
    r12.w = -r29.x * 0.349999994 + r28.x;
    r17.w = 1 / -r29.y;
    r12.w = saturate(r17.w * r12.w);
    r17.w = r12.w * -2 + 3;
    r12.w = r12.w * r12.w;
    r12.w = r17.w * r12.w;
    r12.w = cmp(r12.w >= 0.00100000005);
    r12.w = r12.w ? 1.000000 : 0;
    r10.w = r12.w * r10.w;
    r12.w = -0.100000001 + r28.z;
    r3.w = cmp(r12.w >= r3.w);
    r3.w = r3.w ? 1.000000 : 0;
    r3.w = r10.w * r3.w;
    r28.yw = r31.xy / r29.yy;
    r28.yw = max(float2(-1,-1), r28.yw);
    r28.yw = min(float2(1,1), r28.yw);
    r10.w = r30.x * 0.25 + 0.25;
    r28.yw = r28.yw * r10.ww;
    r28.yw = r28.yw * r3.ww;
    r10.w = r3.w * r25.x;
    r12.w = max(r25.w, r19.w);
    r27.xy = r27.xy * r25.yy + r27.zw;
    r27.xy = r28.yw * r25.xx + r27.xy;
    r30.x = max(r12.w, r10.w);
    r10.w = cmp(r12.w < r10.w);
    r12.w = cmp(r19.w < r25.w);
    r12.w = r12.w ? r21.w : r13.w;
    r30.y = r10.w ? r28.z : r12.w;
    r10.w = cmp(0.00999999978 >= r10.x);
    r31.x = r10.w ? 1.000000 : 0;
    r10.w = cmp(r34.x >= 0.00999999978);
    r10.w = r10.w ? 1.000000 : 0;
    r27.zw = r34.xy * r10.ww;
    r28.yz = r31.xx * r30.xy;
    r27.zw = max(r28.yz, r27.zw);
    r30.x = r17.z * r10.z;
    r30.y = r15.y * 0.349999994 + -r18.w;
    r10.zw = r30.xy * r25.yy;
    r10.zw = float2(0.714285731,0.714285731) * r10.zw;
    r30.x = r23.x * r20.w;
    r30.y = r22.w * 0.349999994 + -r24.x;
    r17.zw = r30.xy * r25.zz;
    r17.zw = float2(0.714285731,0.714285731) * r17.zw;
    r30.x = r29.y * r3.w;
    r30.y = r29.x * 0.349999994 + -r28.x;
    r25.xy = r30.xy * r25.xx;
    r25.xy = float2(0.714285731,0.714285731) * r25.xy;
    r17.zw = max(r25.xy, r17.zw);
    r10.zw = max(r17.zw, r10.zw);
    r31.yz = float2(1,0.695652187);
    r10.zw = r31.xy * r10.zw;
    r10.zw = r10.zw * r31.zx;
    r10.xy = max(r10.xy, r10.zw);
    r10.zw = r27.xy * r31.xx + r26.xy;
    r3.w = r4.z + r4.z;
    r3.w = min(1, r3.w);
    r12.w = cb1[117].z * cb1[20].x;
    r25.y = 0.75 * r12.w;
    r12.w = dot(r15.xz, r15.xz);
    r12.w = max(1.17549435e-38, r12.w);
    r12.w = rsqrt(r12.w);
    r28.x = v7.x * r12.w;
    r28.y = 0;
    r28.z = r15.z * r12.w;
    r15.xyz = float3(-0.200000003,-0.200000003,-0.200000003) + abs(r28.xyz);
    r28.xyz = r15.xyz * r15.xyz;
    r15.xyz = r28.xyz * r15.xyz;
    r15.xyz = max(float3(6.10351562e-05,6.10351562e-05,6.10351562e-05), r15.xyz);
    r12.w = dot(r15.xyz, float3(1,1,1));
    r15.xy = r15.xz / r12.ww;
    r28.xyz = t13.SampleBias(s2_s, r24.zw, cb1[26].x).xyz;
    r24.xyz = t13.SampleBias(s2_s, r24.yw, cb1[26].x).xyz;
    r24.xyz = r24.xyz * r15.xxx;
    r24.xyz = r28.xyz * r15.yyy + r24.xyz;
    r28.xy = float2(2.5,2.5) * r10.zw;
    r10.z = dot(r10.zw, r10.zw);
    r10.z = min(1, r10.z);
    r10.z = 1 + -r10.z;
    r10.z = sqrt(r10.z);
    r28.z = max(1.00000002e-16, r10.z);
    r10.z = dot(r28.xyz, r28.xyz);
    r10.z = rsqrt(r10.z);
    r10.zw = r28.xy * r10.zz + r16.yz;
    r16.yz = r24.xy * float2(2,2) + float2(-1,-1);
    r25.x = 0;
    r23.xyzw = r23.zwyw * cb1[117].zzzz + r25.xyxy;
    r12.w = t13.SampleBias(s2_s, r23.xy, cb1[26].x).w;
    r13.w = t13.SampleBias(s2_s, r23.zw, cb1[26].x).w;
    r13.w = r13.w * r15.x;
    r12.w = r12.w * r15.y + r13.w;
    r15.xy = r16.yz * r12.ww;
    r15.xy = r15.xy * r3.ww + r10.zw;
    r10.z = 1 + -r24.z;
    r10.w = -1 + r17.y;
    r10.xyw = float3(17.5400009,4,-5.00000048) * r10.yxw;
    r10.w = min(1, r10.w);
    r12.w = r10.w * -2 + 3;
    r10.w = r10.w * r10.w;
    r10.z = r12.w * r10.w + -r10.z;
    r10.z = saturate(9.99999809 * r10.z);
    r10.w = r10.z * -2 + 3;
    r10.z = r10.z * r10.z;
    r10.z = r10.w * r10.z;
    r3.w = r10.z * r3.w;
    r10.z = dot(r15.xy, r15.xy);
    r10.z = min(1, r10.z);
    r10.z = 1 + -r10.z;
    r10.z = sqrt(r10.z);
    r15.z = max(1.00000002e-16, r10.z);
    r10.z = dot(r15.xyz, r15.xyz);
    r10.z = rsqrt(r10.z);
    r15.xyz = r15.xyz * r10.zzz;
    r10.zw = float2(1,0) * r12.zy;
    r10.zw = r12.yx * float2(0,1) + -r10.zw;
    r12.w = dot(r10.zw, r10.zw);
    r13.w = cmp(6.10351562e-05 < r12.w);
    r12.w = rsqrt(r12.w);
    r10.zw = r12.ww * r10.zw;
    r23.y = r13.w ? r10.z : 1;
    r23.x = r13.w ? r10.w : 0;
    r23.z = 0;
    r24.xyz = r23.xyz * r12.yzx;
    r24.xyz = r23.zxy * r12.zxy + -r24.xyz;
    r24.xyz = r24.xyz * r15.yyy;
    r23.xyz = r23.yzx * r15.xxx + r24.xyz;
    r23.xyz = r12.xyz * r15.zzz + r23.xyz;
    r10.z = dot(r23.xyz, r23.xyz);
    r10.z = rsqrt(r10.z);
    r24.xyz = r23.xzy * r10.zzz;
    r10.w = cmp(r27.w >= 0.550000012);
    r12.w = r10.w ? 1.000000 : 0;
    r10.w = r10.w ? 0 : 1;
    r10.w = r27.z * r10.w;
    r10.w = r10.w * r5.w;
    r13.w = -r17.y * 0.5 + 1;
    r4.z = -r13.w * r4.z + 1.00999999;
    r4.z = cmp(r26.z >= r4.z);
    r4.z = r4.z ? 1.000000 : 0;
    r4.z = max(r4.z, r3.w);
    r12.w = r27.z * r12.w;
    r4.z = max(r12.w, r4.z);
    r4.z = r4.z * r5.w;
    r16.yz = float2(0.800000012,0.449999988) + -r26.ww;
    r5.w = saturate(cb6[19].y * r16.x);
    r5.w = r5.w + -r16.y;
    r5.w = saturate(3.33333325 * r5.w);
    r12.w = r5.w * -2 + 3;
    r5.w = r5.w * r5.w;
    r5.w = r12.w * r5.w;
    r2.w = min(1, r2.w);
    r2.w = r2.w + -r16.z;
    r2.w = saturate(1.53846145 * r2.w);
    r12.w = r2.w * -2 + 3;
    r2.w = r2.w * r2.w;
    r2.w = r12.w * r2.w;
    r2.w = max(r5.w, r2.w);
    r2.w = r2.w * -abs(cb6[20].y) + 1;
    r5.w = cmp(0 < cb6[20].y);
    r16.xyz = r20.xyz * r2.www;
    r5.xyz = -r5.xyz * cb6[6].xyz + r20.xyz;
    r5.xyz = r2.www * r5.xyz + r7.xyz;
    r7.xyz = r19.xyz * r2.www;
    r25.xyz = r19.xyz + -r8.xyz;
    r8.xyz = r2.www * r25.xyz + r8.xyz;
    r2.w = saturate(dot(r15.yz, float2(-0.800000012,0.600000024)));
    r12.w = r10.y * r10.w;
    r13.w = 0.600000024 * r12.w;
    r15.x = -r12.w * 0.600000024 + 1;
    r10.x = saturate(r10.x);
    r15.y = saturate(1.60000002 * r15.y);
    r10.x = r15.y + r10.x;
    r10.x = min(1, r10.x);
    r10.x = r10.x * r13.w + r15.x;
    r5.xyz = r5.www ? r16.xyz : r5.xyz;
    r20.xyz = r5.xyz * r10.xxx;
    r5.x = -0.600000024 + r10.x;
    r5.x = saturate(2.50000024 * r5.x);
    r5.y = r5.x * -2 + 3;
    r5.x = r5.x * r5.x;
    r5.x = r5.y * r5.x;
    r5.y = min(0.0500000007, r3.y);
    r15.xyz = r23.xyz * r10.zzz + -r12.xyz;
    r16.xyz = r4.zzz * r15.xyz + r12.xyz;
    r5.z = dot(r16.xyz, r16.xyz);
    r5.z = rsqrt(r5.z);
    r16.xyz = r16.xyz * r5.zzz;
    r5.z = cmp(0.00999999978 >= r27.z);
    r5.z = r5.z ? 1.000000 : 0;
    r5.z = r5.z * r4.z;
    r15.xyz = r5.zzz * r15.xyz + r12.xyz;
    r5.z = dot(r15.xyz, r15.xyz);
    r5.z = rsqrt(r5.z);
    r15.xyz = r15.xyz * r5.zzz;
    r5.y = r5.y + -r3.y;
    r3.w = r3.w * r5.y + r3.y;
    r5.z = r2.w * r2.w;
    r2.w = r5.z * r2.w;
    r2.w = r2.w * 1.75 + 0.0500000007;
    r2.w = r2.w * r10.y;
    r2.w = r2.w * r5.x;
    r2.w = r2.w * r10.w;
    r5.z = saturate(dot(r20.xyz, float3(0.212672904,0.715152204,0.0721750036)));
    r5.z = r5.z * -0.699999988 + 1;
    r2.w = r5.z * r2.w;
    r5.x = r5.x * 0.5 + 0.5;
    r5.x = r5.x * 0.800000012 + -1;
    r5.x = r10.w * r5.x + 1;
    r5.z = max(r27.z, r4.z);
    r3.y = r4.z * r5.y + r3.y;
    r7.xyz = r5.www ? r7.xyz : r8.xyz;
    r19.xyz = r7.xyz * r10.xxx;
    r7.y = r24.x;
    r24.xy = r24.zy;
    r4.z = 1;
  } else {
    r16.xyz = r12.xyz;
    r15.xyz = r12.xyz;
    r7.y = r12.x;
    r24.xy = r12.yz;
    r4.z = 0;
    r3.w = 0.00999999978;
    r12.w = 0;
    r2.w = 0;
    r5.xz = float2(1,0);
  }
  r5.y = cmp(2.54999971 < r15.w);
  if (r5.y != 0) {
    r8.xyz = float3(1,1,-1) * v9.xzy;
    r8.xyz = r3.xxx ? r8.xyz : v9.xyz;
    r10.xyz = cb1[117].zzz * r8.xyz;
    r23.yz = r3.xx ? v7.zy : v7.yz;
    r23.x = v7.x;
    r23.xzw = float3(-0.200000003,-0.200000003,-0.200000003) + abs(r23.xyz);
    r25.xyz = r23.xzw * r23.xzw;
    r23.xzw = r25.xyz * r23.xzw;
    r23.xzw = max(float3(6.10351562e-05,6.10351562e-05,6.10351562e-05), r23.xzw);
    r3.x = dot(r23.xzw, float3(1,1,1));
    r23.xzw = r23.xzw / r3.xxx;
    r25.xyzw = t14.SampleBias(s2_s, r10.xz, cb1[26].x).xyzw;
    r26.xyzw = t14.SampleBias(s2_s, r10.xy, cb1[26].x).xyzw;
    r26.xyzw = r26.xyzw * r23.wwww;
    r25.xyzw = r25.xyzw * r23.zzzz + r26.xyzw;
    r26.xyzw = t14.SampleBias(s2_s, r10.zy, cb1[26].x).xyzw;
    r25.xyzw = r26.xyzw * r23.xxxx + r25.xyzw;
    r3.x = -0.349999994 + r8.y;
    r3.x = saturate(-6.66666698 * r3.x);
    r5.y = r3.x * -2 + 3;
    r3.x = r3.x * r3.x;
    r3.x = r5.y * r3.x;
    r5.y = 0.011764707 * r15.w;
    r5.y = min(1, r5.y);
    r3.x = r3.x * r5.y + r16.w;
    r3.x = min(1, r3.x);
    r5.y = 2 + -r3.x;
    r5.w = r23.y * 0.649999976 + r25.z;
    r5.w = 0.349999994 + r5.w;
    r5.y = r5.w + -r5.y;
    r5.y = saturate(2.85714364 * r5.y);
    r5.w = r5.y * -2 + 3;
    r5.y = r5.y * r5.y;
    r5.y = r5.w * r5.y;
    r5.w = r6.z * r6.z;
    r8.x = (int)v11.x & 0x3f800000;
    r5.w = r8.x * r5.w;
    r5.y = r5.y * r5.w;
    r5.w = 1 + -r6.x;
    r8.xyz = r20.xyz * r5.www;
    r5.w = dot(r8.xyz, float3(0.212672904,0.715152204,0.0721750036));
    r5.w = -0.349999994 + r5.w;
    r5.w = saturate(-4 * r5.w);
    r8.x = r5.w * -2 + 3;
    r5.w = r5.w * r5.w;
    r5.w = -r8.x * r5.w + 1;
    r3.x = r5.w * r3.x;
    r3.x = r3.x * r25.w;
    r5.w = r23.y * 0.25 + 0.75;
    r3.x = r5.w * r3.x;
    r3.x = r3.x * -0.5 + 1;
    r8.xy = r25.xy * float2(2,2) + float2(-1,-1);
    r5.w = dot(r8.xy, r8.xy);
    r5.w = min(1, r5.w);
    r5.w = 1 + -r5.w;
    r5.w = sqrt(r5.w);
    r25.z = max(1.00000002e-16, r5.w);
    r25.xy = r8.xy + r8.xy;
    r8.xyz = float3(-0,-0,-1) + r25.xyz;
    r8.xyz = r5.yyy * r8.xyz + float3(0,0,1);
    r5.w = dot(r8.xyz, r8.xyz);
    r5.w = max(6.10351562e-05, r5.w);
    r5.w = rsqrt(r5.w);
    r8.xyz = r8.xyz * r5.www;
    r5.w = -r12.y * r12.y + 1;
    r5.w = cmp(r5.w >= 0.00999999978);
    r25.y = r5.w ? 1.000000 : 0;
    r3.z = r11.y * r3.z + -r12.z;
    r3.z = r25.y * r3.z + r12.z;
    r25.z = r5.w ? 0 : 1;
    r25.x = 0;
    r25.xyz = -r12.xyz * r3.zzz + r25.xyz;
    r3.z = -r3.z * r3.z + 1;
    r3.z = max(9.99999975e-05, r3.z);
    r3.z = rsqrt(r3.z);
    r25.xyz = r25.xyz * r3.zzz;
    r10.xyz = float3(4,4,4) * r10.xyz;
    r26.xyz = t15.SampleLevel(s0_s, r10.xz, 0).xyz;
    r27.xyz = t15.SampleLevel(s0_s, r10.xy, 0).xyz;
    r27.xyz = r27.xyz * r23.www;
    r23.yzw = r26.xyz * r23.zzz + r27.xyz;
    r10.xyz = t15.SampleLevel(s0_s, r10.zy, 0).xyz;
    r10.xyz = r10.xyz * r23.xxx + r23.yzw;
    r23.xyz = float3(50,50,50) * r2.xyz;
    r23.xyz = floor(r23.xyz);
    r23.xyz = float3(0.00200000009,0.00200000009,0.00200000009) * r23.xyz;
    r10.xyz = r10.xyz * float3(2,1,2) + float3(-1,0,-1);
    r3.z = dot(r10.xyz, r23.xyz);
    r3.z = r3.z * 0.5 + 0.5;
    r3.z = r3.z + r3.z;
    r3.z = frac(r3.z);
    r3.z = -0.949999988 + r3.z;
    r3.z = 19.9999962 * r3.z;
    r3.z = max(0, r3.z);
    r5.w = r3.z * -2 + 3;
    r3.z = r3.z * r3.z;
    r3.z = r5.w * r3.z;
    r3.z = r3.z * r3.z;
    r3.z = r3.z * r3.z;
    r5.w = r3.z * r5.y;
    r10.x = r5.w + r5.w;
    r10.yzw = r25.zxy * r12.yzx;
    r10.yzw = r25.yzx * r12.zxy + -r10.yzw;
    r23.xyz = r25.xyz * r8.yyy;
    r10.yzw = r10.yzw * r8.xxx + r23.xyz;
    r8.xyz = r12.xyz * r8.zzz + r10.yzw;
    r5.z = r5.w * 2 + r5.z;
    r10.y = 4 * r5.y;
    r10.y = min(1, r10.y);
    r10.z = 0.899999976 + -r3.y;
    r10.y = r10.y * r10.z + r3.y;
    r10.z = 0.00999999978 + -r10.y;
    r3.y = r10.x * r10.z + r10.y;
    r10.xyz = r19.xyz * r3.xxx;
    r23.xyz = -r19.xyz * r3.xxx + float3(0.307999998,0.307999998,0.307999998);
    r10.xyz = r5.yyy * r23.xyz + r10.xyz;
    r19.xyz = r3.zzz * r5.yyy + r10.xyz;
    r10.xyz = r20.xyz * r3.xxx;
    r23.xyz = -r20.xyz * r3.xxx + float3(0.879999995,0.879999995,0.879999995);
    r10.xyz = r5.yyy * r23.xyz + r10.xyz;
    r20.xyz = r5.www * float3(2,2,2) + r10.xyz;
    r6.x = r5.y * -r6.x + r6.x;
  } else {
    r8.xyz = r12.xyz;
  }
  r3.x = -r6.x * 0.959999979 + 0.959999979;
  r10.xyz = r20.xyz * r3.xxx;
  r3.z = 0.0399999991 * r6.y;
  r23.xyz = -r6.yyy * float3(0.0399999991,0.0399999991,0.0399999991) + r20.xyz;
  r23.xyz = r6.xxx * r23.xyz + r3.zzz;
  r19.xyz = r19.xyz * r3.xxx;
  r3.z = r3.y * r3.y;
  r3.z = max(0.0078125, r3.z);
  r5.y = saturate(cb6[18].y * r17.y);
  r5.y = 1 + -r5.y;
  r5.w = -r17.x * r5.y + 1;
  r5.y = r17.x * r5.y + 1;
  r5.yw = r5.yw * r3.zz;
  r6.y = max(9.99999994e-09, v5.z);
  r17.xy = v5.xy / r6.yy;
  r6.y = max(9.99999994e-09, v6.z);
  r17.zw = v6.xy / r6.yy;
  r17.xy = r17.xy + -r17.zw;
  r25.xy = float2(0.5,-0.5) * r17.xy;
  r25.xy = sqrt(abs(r25.xy));
  r25.xy = sqrt(r25.xy);
  r17.z = -r17.y;
  r17.yw = cmp(float2(0,0) < r17.xz);
  r17.xz = cmp(r17.xz < float2(0,0));
  r17.xy = (int2)-r17.yw + (int2)r17.xz;
  r17.xy = (int2)r17.xy;
  r17.xy = r25.xy * r17.xy;
  o1.xy = r17.xy * float2(0.5,0.5) + float2(0.5,0.5);
  r5.z = cmp(0.100000001 < r5.z);
  o1.w = r5.z ? 0.699999988 : 0.400000006;
  r17.xyz = cb4[0].xyz + cb1[118].xyz;
  r17.xyz = cb1[108].www * r17.xyz + -cb4[0].xyz;
  r17.w = 6.10351562e-05;
  r5.z = dot(r17.xzw, r17.xzw);
  r5.z = rsqrt(r5.z);
  r25.xyz = r17.xwz * r5.zzz;
  r26.xyz = -cb4[3].xyz + cb1[112].xyz;
  r26.xyz = cb1[119].yyy * r26.xyz + cb4[3].xyz;
  r5.z = -cb4[3].w + 1;
  r5.z = cb1[119].w * r5.z + cb4[3].w;
  r27.xyz = r26.xyz * r5.zzz;
  r14.z = 0;
  r28.xy = t3.Load(r14.xyz).xy;
  r6.y = -1 + r28.x;
  r6.y = cb5[34].x * r6.y + 1;
  r10.w = 1 + -r6.y;
  r6.y = cb1[108].z * r10.w + r6.y;
  r10.w = dot(r8.xyz, r17.xyz);
  r28.xzw = cb1[107].zzz * r19.xyz;
  r29.xyz = float3(0.649999976,0.649999976,0.649999976) * r28.xzw;
  r11.y = dot(r10.xyz, float3(0.212672904,0.715152204,0.0721750036));
  r13.w = dot(cb0[6].xz, cb0[6].xz);
  r13.w = rsqrt(r13.w);
  r30.xy = cb0[6].xz * r13.ww;
  r13.w = dot(r25.xz, r30.xy);
  r13.w = saturate(-r13.w);
  r30.xy = -cb1[119].xy + float2(1,1);
  r14.z = r10.w * 0.5 + -1;
  r14.z = -r10.w * r14.z + -r10.w;
  r15.w = -abs(cb0[6].y) + 0.75;
  r15.w = saturate(r15.w + r15.w);
  r16.w = r15.w * -2 + 3;
  r15.w = r15.w * r15.w;
  r15.w = r16.w * r15.w;
  r15.w = r15.w * r13.w;
  r15.w = r15.w * r30.x;
  r14.z = 0.5 + r14.z;
  r10.w = r15.w * r14.z + r10.w;
  r10.w = cb1[118].w * cb1[119].x + r10.w;
  r10.w = max(-1, r10.w);
  r10.w = min(1, r10.w);
  r31.x = r10.w * 0.5 + 0.5;
  r31.yw = float2(0.5,0.5);
  r32.xyzw = t10.SampleLevel(s1_s, r31.xy, 0).xyzw;
  r10.w = max(r32.x, r32.y);
  r10.w = max(r10.w, r32.z);
  r14.z = min(r32.x, r32.y);
  r14.z = min(r14.z, r32.z);
  r10.w = -r14.z + r10.w;
  r14.z = dot(r8.xyz, cb0[6].xyz);
  r31.z = r14.z * 0.5 + 0.5;
  r14.z = t10.SampleLevel(s1_s, r31.zw, 0).w;
  r15.w = r28.y * r6.z;
  r16.w = min(r28.y, r6.z);
  r17.w = min(r16.w, r32.w);
  r18.w = r15.w * r14.z;
  r19.w = dot(r12.xyz, cb1[113].xyz);
  r19.w = saturate(cb1[114].x + r19.w);
  r19.w = r19.w * cb1[114].y + cb1[114].z;
  r20.w = cb1[108].y * r17.w;
  r31.xyz = float3(1,1,1) + -r18.xyz;
  r31.xyz = r20.www * r31.xyz + r18.xyz;
  r31.xyz = r31.xyz * r19.www;
  r19.w = r6.w * 0.350000024 + 0.649999976;
  r19.w = min(1.5, r19.w);
  r33.xyz = max(float3(1.25,0,0.5), r6.www);
  r33.xyz = min(float3(1.75,1.5,1.5), r33.xyz);
  r6.w = r33.x + -r19.w;
  r6.w = cb1[108].x * r6.w + r19.w;
  r34.xyz = r31.xyz * r6.www;
  r34.xyz = cb1[107].www * r34.xyz;
  r6.w = dot(r27.xyz, float3(0.212672904,0.715152204,0.0721750036));
  r27.xyz = r26.xyz * r5.zzz + -r6.www;
  r27.xyz = r17.www * r27.xyz + r6.www;
  r31.xyz = r33.yyy * r31.xyz;
  r30.yzw = r26.xyz * cb1[119].yyy + r30.yyy;
  r27.xyz = r31.xyz * r30.yzw + r27.xyz;
  r27.xyz = r27.xyz * cb1[107].yyy + -r34.xyz;
  r27.xyz = r6.yyy * r27.xyz + r34.xyz;
  r6.w = dot(r29.xyz, float3(0.212672904,0.715152204,0.0721750036));
  r29.xyz = r28.xzw * float3(0.649999976,0.649999976,0.649999976) + -r6.www;
  r29.xyz = r29.xyz * float3(1.20000005,1.20000005,1.20000005) + r6.www;
  r6.w = saturate(r14.z * r15.w + r32.w);
  r30.yzw = r19.xyz * cb1[107].zzz + -r29.xyz;
  r29.xyz = r6.www * r30.yzw + r29.xyz;
  r30.yzw = r20.xyz * r3.xxx + -r29.xyz;
  r29.xyz = r17.www * r30.yzw + r29.xyz;
  r6.w = 1 + -r10.w;
  r30.yzw = r32.xyz * r10.www + r6.www;
  r30.yzw = r30.yzw * r29.xyz;
  r31.xyz = r20.xyz * r3.xxx + -r11.yyy;
  r31.xyz = r31.xyz * float3(1.20000005,1.20000005,1.20000005) + r11.yyy;
  r31.xyz = -r19.xyz * cb1[107].zzz + r31.xyz;
  r28.xzw = r18.www * r31.xyz + r28.xzw;
  r6.w = dot(r29.xyz, float3(0.212672904,0.715152204,0.0721750036));
  r10.w = dot(r30.yzw, float3(0.212672904,0.715152204,0.0721750036));
  r10.w = max(0.00100000005, r10.w);
  r10.w = 1 / r10.w;
  r6.w = r10.w * r6.w;
  r6.w = max(0, r6.w);
  r6.w = min(1.5, r6.w);
  r29.xyz = r30.yzw * r6.www + -r28.xzw;
  r28.xzw = r6.yyy * r29.xyz + r28.xzw;
  r29.xyz = r28.xzw * r27.xyz;
  r6.w = -r14.z * r15.w + r17.w;
  r6.w = r6.y * r6.w + r18.w;
  r10.w = -cb1[107].z + 1;
  r10.w = r6.w * r10.w + cb1[107].z;
  r6.w = r6.w * 0.5 + 0.5;
  r6.w = r6.w * r10.w;
  r30.yzw = r27.xyz * r6.www;
  r6.w = -0.5 + r17.y;
  r31.y = r6.y * r6.w + 0.5;
  r31.xz = cb0[6].xz;
  r6.w = dot(r31.xyz, r31.xyz);
  r6.w = max(1.17549435e-38, r6.w);
  r6.w = rsqrt(r6.w);
  r31.xyz = r31.xyz * r6.www;
  r31.xyz = r31.xyz + r31.xyz;
  r17.xyz = r17.xyz * r6.yyy + r31.xyz;
  r6.w = 2 + r6.y;
  r17.xyz = r2.xyz * r6.www + r17.xyz;
  r6.w = dot(r17.xyz, r17.xyz);
  r6.w = rsqrt(r6.w);
  r17.xyz = r17.xyz * r6.www;
  r6.w = saturate(dot(r16.xyz, r2.xyz));
  r14.z = dot(r16.xyz, r17.xyz);
  r15.w = r3.z * r3.z;
  r17.w = r14.z * r15.w + -r14.z;
  r14.z = r17.w * r14.z + 1;
  r14.z = r14.z * r14.z;
  r31.xyz = r2.xyz * cb6[19].zzz + r17.xyz;
  r17.w = dot(r31.xyz, r31.xyz);
  r17.w = rsqrt(r17.w);
  r31.xyz = r31.xyz * r17.www;
  r17.w = r5.w * r5.y;
  r18.w = dot(r13.zxy, r31.xyz);
  r32.x = r18.w * r5.y;
  r33.xyw = r13.xyz * r12.zxy;
  r12.xyz = r12.yzx * r13.yzx + -r33.xyw;
  r12.xyz = v4.www * r12.xyz;
  r5.y = dot(r12.xyz, r31.xyz);
  r32.y = r5.w * r5.y;
  r5.y = dot(r16.xyz, r31.xyz);
  r32.z = r17.w * r5.y;
  r5.y = dot(r32.xyz, r32.xyz);
  r5.w = r17.w * r17.w;
  r5.w = r5.w * r17.w;
  r5.y = r5.y * r5.y;
  r12.x = cmp(r14.z != r15.w);
  r12.y = r15.w / r14.z;
  r12.x = r12.x ? r12.y : 1;
  r12.y = r6.w * 2 + r3.z;
  r12.y = 9.99999975e-05 + r12.y;
  r12.y = 0.5 / r12.y;
  r12.x = r12.x * r12.y + -6.10351562e-05;
  r12.x = max(0, r12.x);
  r12.x = min(20, r12.x);
  r12.y = cmp(r5.y != r5.w);
  r5.y = r5.w / r5.y;
  r5.y = max(0, r5.y);
  r5.y = min(20, r5.y);
  r5.y = r12.y ? r5.y : 1;
  r5.y = r9.w * r5.y;
  r13.xyz = r5.yyy * r23.xyz;
  r12.xyz = r23.xyz * r12.xxx + r13.xyz;
  r12.xyz = r12.xyz * r30.yzw;
  r12.xyz = cb1[120].www * r12.xyz;
  r7.x = -r24.y;
  r7.z = 0.00100000005;
  r5.y = dot(r7.xyz, r7.xyz);
  r5.y = rsqrt(r5.y);
  r13.xyz = r7.zyx * r5.yyy;
  r5.y = -cb6[1].z + 1;
  r5.y = r7.w * cb6[1].z + r5.y;
  r27.xyz = r27.xyz * r28.xzw + r12.xyz;
  r5.w = dot(r17.yzx, r13.xyz);
  r5.w = -0.150000006 + abs(r5.w);
  r5.w = saturate(-19.9999981 * r5.w);
  r7.x = r5.w * -2 + 3;
  r5.w = r5.w * r5.w;
  r5.w = r7.x * r5.w;
  r24.z = r7.y;
  r7.xyz = r24.yzx * r13.xyz;
  r7.xyz = r24.xyz * r13.yzx + -r7.xyz;
  r7.x = dot(r17.xyz, r7.xyz);
  r7.x = -0.0700000003 + abs(r7.x);
  r7.x = saturate(-20 * r7.x);
  r7.y = r7.x * -2 + 3;
  r7.x = r7.x * r7.x;
  r7.x = r7.y * r7.x;
  r5.w = r7.x * r5.w;
  r7.x = dot(r24.zxy, r17.xyz);
  r7.x = max(0, r7.x);
  r5.w = r7.x * r5.w;
  r5.w = dot(r5.ww, r12.ww);
  r7.xyz = r5.www * r30.yzw;
  r7.xyz = r27.xyz * r2.www + r7.xyz;
  r7.xyz = r12.xyz * r5.xxx + r7.xyz;
  r7.xyz = r29.xyz * r5.yyy + r7.xyz;
  r2.w = dot(r7.xyz, float3(0.212672904,0.715152204,0.0721750036));
  r5.x = -0.5 + r2.w;
  r5.x = max(0, r5.x);
  r5.x = min(0.5, r5.x);
  r12.z = cb1[116].x * cb0[0].x;
  r12.x = cb1[116].x * cb0[1].x;
  r12.y = cb1[116].x * cb0[2].x;
  r13.z = cb1[116].y * cb0[0].y;
  r13.x = cb1[116].y * cb0[1].y;
  r13.y = cb1[116].y * cb0[2].y;
  r12.xyz = r13.xyz + r12.xyz;
  r13.xz = cb1[116].yx;
  r13.y = 0;
  r12.xyz = -r13.xyz + r12.xyz;
  r12.xyz = cb1[122].www * r12.xyz + r13.xyz;
  r13.xyz = cb0[6].zxy * r12.xyz;
  r12.xyz = cb0[6].yzx * r12.yzx + -r13.xyz;
  r5.w = dot(r12.xyz, r12.xyz);
  r5.w = rsqrt(r5.w);
  r12.xyz = r12.xyz * r5.www;
  r5.w = dot(r2.xyz, r8.xyz);
  r13.xy = float2(1,0.399999976) + -abs(r5.ww);
  r9.w = dot(r25.xyz, r8.xyz);
  r12.w = 1 + -r6.y;
  r17.x = saturate(dot(r15.xyz, r2.xyz));
  r3.w = r3.w + -r3.y;
  r3.w = r4.z * r3.w + r3.y;
  r24.y = r3.w * r3.w;
  r25.x = r17.x * r17.x;
  r25.z = r25.x * r17.x;
  r4.z = r24.y * r24.y;
  r24.z = r4.z * r24.y;
  r17.yzw = float3(0.0365463011,9.0632,0.990440011);
  r27.x = dot(float2(3.32707,1), r17.xy);
  r27.y = dot(float2(-9.04755974,1), r17.xz);
  r24.x = 1;
  r4.z = dot(r27.xy, r24.xy);
  r25.yw = float2(9.04401016,1);
  r27.x = dot(float3(3.59684992,-1.36772001,1), r25.xzw);
  r27.y = dot(float3(-16.3174,1,9.22949028), r25.xyz);
  r29.x = 5.56588984;
  r29.yz = r25.xz;
  r27.z = dot(float3(1,19.7886009,-20.2122993), r29.xyz);
  r13.z = dot(r27.xyz, r24.xyz);
  r4.z = r4.z / r13.z;
  r27.x = dot(float2(-1.28514004,1), r17.xw);
  r25.x = 1.29677999;
  r25.y = r17.x;
  r27.y = dot(float2(1,-0.755906999), r25.xy);
  r13.z = dot(r27.xy, r24.xy);
  r17.x = dot(float3(2.9233799,59.4188004,1), r25.yzw);
  r25.xw = float2(20.3225002,121.563004);
  r17.y = dot(float3(1,-27.0301991,222.591995), r25.xyz);
  r17.z = dot(float3(626.130005,316.627014,1), r25.yzw);
  r14.z = dot(r17.xyz, r24.xyz);
  r13.z = r13.z / r14.z;
  r17.xyz = r23.xyz * r4.zzz + r13.zzz;
  r4.z = r13.z + r4.z;
  r5.x = r5.x * r5.x + 1;
  r7.xyz = r7.xyz + -r2.www;
  r7.xyz = r5.xxx * r7.xyz + r2.www;
  r24.xy = cb1[116].ww * float2(-0.600000024,-0.399999976) + float2(0.800000012,0.899999976);
  r2.w = r24.y + -r24.x;
  r5.x = -r24.x + r13.x;
  r2.w = 1 / r2.w;
  r2.w = saturate(r5.x * r2.w);
  r5.x = r2.w * -2 + 3;
  r2.w = r2.w * r2.w;
  r2.w = r5.x * r2.w;
  r24.xyz = cb1[115].xyz * r2.www;
  r24.xyz = cb1[115].www * r24.xyz;
  r2.w = dot(r4.xyw, r12.xyz);
  r2.w = saturate(1 + r2.w);
  r2.w = min(r2.w, r6.z);
  r2.w = min(r2.w, r28.y);
  r24.xyz = r24.xyz * r2.www;
  r25.xyz = r20.xyz * r3.xxx + float3(-0.25,-0.25,-0.25);
  r25.xyz = cb1[116].zzz * r25.xyz + float3(0.25,0.25,0.25);
  r2.w = saturate(dot(r12.xyz, r8.xyz));
  r12.xyz = r25.xyz * r2.www;
  r2.w = max(r21.x, r21.y);
  r2.w = max(r2.w, r21.z);
  r2.w = 0.5 * r2.w;
  r2.w = max(1, r2.w);
  r2.w = 1 / r2.w;
  r21.xyz = r21.xyz * r2.www;
  r25.xyz = r26.xyz * r5.zzz + -r21.xyz;
  r21.xyz = r6.yyy * r25.xyz + r21.xyz;
  r2.w = dot(r22.xyz, r8.xyz);
  r5.x = r2.w * r8.w;
  r5.z = r9.w * 0.5 + -1;
  r5.z = -r9.w * r5.z + 0.5;
  r2.w = -r2.w * r8.w + r5.z;
  r2.w = saturate(r6.y * r2.w + r5.x);
  r21.xyz = r21.xyz * r2.www;
  r2.w = r13.w * r6.y + r12.w;
  r2.w = r2.w * r30.x;
  r21.xyz = r21.xyz * r2.www;
  r2.w = saturate(5.00000048 * r13.y);
  r5.x = r2.w * -2 + 3;
  r2.w = r2.w * r2.w;
  r2.w = r5.x * r2.w;
  r13.yzw = r21.xyz * r2.www;
  r13.yzw = r13.yzw * r16.www;
  r2.w = -0.100000001 + r11.y;
  r2.w = saturate(-16.666666 * r2.w);
  r5.x = r2.w * -2 + 3;
  r2.w = r2.w * r2.w;
  r2.w = r5.x * r2.w;
  r2.w = r2.w * r6.y + r12.w;
  r13.yzw = r13.yzw * r2.www;
  r21.xyz = max(float3(0.150000006,0.150000006,0.150000006), r10.xyz);
  r13.yzw = r21.xyz * r13.yzw;
  r12.xyz = r24.xyz * r12.xyz + r13.yzw;
  r7.xyz = r12.xyz + r7.xyz;
  r5.xz = (uint2)r14.xy;
  r6.yz = float2(0.03125,0.03125) * r5.xz;
  r6.yz = floor(r6.yz);
  r2.w = r6.z * cb3[1].y + r6.y;
  r2.w = 8 * r2.w;
  r2.w = (int)r2.w;
  r6.y = -cb1[3].y * cb3[2].w + v0.w;
  r6.y = floor(r6.y);
  r6.z = cb3[1].w + -1;
  r8.w = max(0, r6.y);
  r6.z = min(r8.w, r6.z);
  r8.w = 8 * r6.z;
  r8.w = (int)r8.w;
  r9.w = dot(-r2.xyz, r15.xyz);
  r9.w = r9.w + r9.w;
  r12.xyz = r15.xyz * -r9.www + -r2.xyz;
  r3.w = max(0.00100000005, r3.w);
  r3.w = log2(r3.w);
  r3.w = r3.w * 1.20000005 + 5;
  r12.xyz = t19.SampleLevel(s1_s, r12.xyz, r3.w).xyz;
  r3.w = 1 + -r4.z;
  r3.w = r3.w / r4.z;
  r13.yzw = r23.xyz * r3.www;
  r13.yzw = r13.yzw * r17.xyz + r17.xyz;
  r12.xyz = r13.yzw * r12.xyz;
  r3.w = cb1[107].w * r33.z;
  r3.w = r3.w * r10.w;
  r12.xyz = r12.xyz * r3.www;
  r7.xyz = r12.xyz * r18.xyz + r7.xyz;
  r3.w = cmp(r6.z >= r6.y);
  r4.z = (int)r8.w + asint(cb1[28].y);
  r6.y = r12.w * -0.25 + 0.75;
  r12.xyz = r20.xyz * r3.xxx + float3(-0.5,-0.5,-0.5);
  r3.x = 0.00999999978 + -r3.z;
  r6.x = cmp(r6.x >= 0.5);
  r6.x = r6.x ? 1.000000 : 0;
  r15.w = 1;
  r13.yzw = r7.xyz;
  r6.z = 0;
  while (true) {
    r8.w = cmp(7 < (int)r6.z);
    if (r8.w != 0) break;
    r8.w = (int)r2.w + (int)r6.z;
    r8.w = t0[r8.w].val[0/4];
    r9.w = (int)r4.z + (int)r6.z;
    r9.w = t0[r9.w].val[0/4];
    r8.w = (int)r8.w & (int)r9.w;
    r8.w = r3.w ? r8.w : 0;
    r9.w = (uint)r6.z << 5;
    r17.xyz = r13.yzw;
    r10.w = r8.w;
    while (true) {
      if (r10.w == 0) break;
      r11.y = firstbitlow((uint)r10.w);
      r12.w = 1 << (int)r11.y;
      r12.w = (int)r10.w ^ (int)r12.w;
      r11.y = (int)r9.w + (int)r11.y;
      bitmask.x = ((~(-1 << 29)) << 3) & 0xffffffff;  r18.x = (((uint)r11.y << 3) & bitmask.x) | ((uint)1 & ~bitmask.x);
      bitmask.y = ((~(-1 << 29)) << 3) & 0xffffffff;  r18.y = (((uint)r11.y << 3) & bitmask.y) | ((uint)5 & ~bitmask.y);
      bitmask.z = ((~(-1 << 29)) << 3) & 0xffffffff;  r18.z = (((uint)r11.y << 3) & bitmask.z) | ((uint)6 & ~bitmask.z);
      bitmask.w = ((~(-1 << 29)) << 3) & 0xffffffff;  r18.w = (((uint)r11.y << 3) & bitmask.w) | ((uint)7 & ~bitmask.w);
      r14.z = (uint)cb4[r18.y+6].w;
      r16.w = (int)r14.z & 1;
      r16.w = cmp((int)r16.w == 1);
      if (r16.w != 0) {
        r15.xyz = -cb4[r18.x+6].xyz + r9.xyz;
        r20.xyz = int3(0xffff,0xffff,0xffff) & asint(cb4[r18.y+6].xzy);
        r21.xyz = int3(0xffff,0xffff,0xffff) & asint(cb4[r18.z+6].yxz);
        r22.xyz = asuint(cb4[r18.y+6].xzy) >> int3(16,16,16);
        r24.xyz = asuint(cb4[r18.z+6].yxz) >> int3(16,16,16);
        r20.xyz = f16tof32(r20.xyz);
        r21.xyz = f16tof32(r21.xyz);
        r22.xyz = f16tof32(r22.xyz);
        r24.xyw = f16tof32(r24.yxz);
        r25.xz = r20.xz;
        r25.yw = r22.xz;
        r16.w = dot(r15.xyzw, r25.xyzw);
        r22.x = r20.y;
        r22.z = r21.y;
        r22.w = r24.x;
        r17.w = dot(r15.xyzw, r22.xyzw);
        r24.xz = r21.xz;
        r15.x = dot(r15.xyzw, r24.xyzw);
        r15.y = max(abs(r17.w), abs(r16.w));
        r15.x = max(r15.y, abs(r15.x));
        r15.y = cb4[r18.w+6].x * 0.5 + 0.5;
        r15.x = r15.x + -r15.y;
        r15.y = -cb4[r18.w+6].x * 0.5 + 0.5;
        r15.x = saturate(r15.x / r15.y);
        r15.x = 1 + -r15.x;
        r15.x = r15.x * r15.x;
      } else {
        r15.x = 1;
      }
      r15.y = cmp(r15.x < 0.00100000005);
      if (r15.y != 0) {
        r10.w = r12.w;
        continue;
      }
      r15.y = (uint)r11.y << 3;
      r15.z = cmp(cb4[r15.y+6].w < 1.5);
      if (r15.z != 0) {
        bitmask.z = ((~(-1 << 29)) << 3) & 0xffffffff;  r15.z = (((uint)r11.y << 3) & bitmask.z) | ((uint)3 & ~bitmask.z);
        r16.w = cmp(16 == asint(cb4[r15.z+6].w));
        r17.w = cb4[r15.z+6].z + cb1[119].z;
        r17.w = cmp(r17.w < 0.5);
        r16.w = (int)r16.w | (int)r17.w;
        if (r16.w == 0) {
          bitmask.x = ((~(-1 << 29)) << 3) & 0xffffffff;  r20.x = (((uint)r11.y << 3) & bitmask.x) | ((uint)2 & ~bitmask.x);
          bitmask.y = ((~(-1 << 29)) << 3) & 0xffffffff;  r20.y = (((uint)r11.y << 3) & bitmask.y) | ((uint)4 & ~bitmask.y);
          r11.y = (uint)cb4[r15.y+6].w;
          r11.y = (int)r11.y & 1;
          r16.w = cmp((int)r11.y == 0);
          r17.w = ~(int)r16.w;
          r18.y = cmp(0 < cb4[r20.x+6].z);
          r17.w = r17.w ? r18.y : 0;
          r18.y = cmp(4 == asint(cb4[r15.z+6].w));
          r19.w = r11.y ? 0 : 1;
          r20.z = cb4[r20.x+6].y * 0.5 + 0.5;
          r21.z = -abs(cb4[r20.x+6].x) + r20.z;
          r21.x = cb4[r20.x+6].y + -r21.z;
          r20.z = 1 + -abs(r21.z);
          r20.z = r20.z + -abs(r21.x);
          r20.z = max(0.00048828125, r20.z);
          r20.w = cmp(cb4[r20.x+6].x >= 0);
          r21.y = r20.w ? r20.z : -r20.z;
          r20.z = dot(r21.xyz, r21.xyz);
          r20.z = rsqrt(r20.z);
          r21.xyz = r21.xyz * r20.zzz;
          r20.z = cb4[r20.y+6].y + cb4[r20.y+6].y;
          r20.z = max(0.100000001, r20.z);
          r20.w = r18.y ? 1.000000 : 0;
          r20.z = -cb4[r18.z+6].w + r20.z;
          r18.z = r20.w * r20.z + cb4[r18.z+6].w;
          r22.xyz = cb4[r18.x+6].xyz + -r9.xyz;
          r20.z = dot(r22.yzx, -r21.xyz);
          r20.w = cmp(0.5 < cb4[r20.y+6].z);
          r20.w = r18.y ? r20.w : 0;
          r20.w = r20.w ? 1.000000 : 0;
          r20.w = r20.w * r19.w;
          r24.xyz = -r21.zxy * r20.zzz + -r22.xyz;
          r22.xyz = r20.www * r24.xyz + r22.xyz;
          r20.z = dot(r22.xyz, r22.xyz);
          r20.w = rsqrt(r20.z);
          r24.xyz = r22.xyz * r20.www;
          if (r17.w != 0) {
            r25.xyz = cb4[r20.x+6].zzz * r21.zxy;
            r26.xyz = -r25.xyz * float3(0.5,0.5,0.5) + r22.xyz;
            r25.xyz = r25.xyz * float3(0.5,0.5,0.5) + r22.xyz;
            r20.w = dot(r26.xyz, r26.xyz);
            r20.w = sqrt(r20.w);
            r21.w = dot(r25.xyz, r25.xyz);
            r21.w = sqrt(r21.w);
            r27.xyz = r24.xyz * r21.xyz;
            r27.xyz = r21.zxy * r24.yzx + -r27.xyz;
            r29.xyz = r27.xyz * r21.xyz;
            r27.xyz = r27.zxy * r21.yzx + -r29.xyz;
            r22.w = dot(r27.xyz, r27.xyz);
            r22.w = rsqrt(r22.w);
            r24.xyz = r27.xyz * r22.www;
            r22.w = dot(r26.xyz, r25.xyz);
            r22.w = r20.w * r21.w + r22.w;
            r22.w = r22.w * 0.5 + 1;
            r22.w = 1 / r22.w;
            r23.w = dot(r24.xyz, r26.xyz);
            r20.w = r23.w / r20.w;
            r23.w = dot(r24.xyz, r25.xyz);
            r21.w = r23.w / r21.w;
            r20.w = r21.w + r20.w;
            r20.w = saturate(0.5 * r20.w);
            r20.w = r22.w * r20.w;
          } else {
            r20.w = 1;
          }
          r21.w = cmp(r18.z < 0);
          if (r21.w != 0) {
            r21.w = cb4[r18.x+6].w * cb4[r18.x+6].w;
            r21.w = r21.w * r20.z;
            r21.w = -r21.w * r21.w + 1;
            r21.w = max(0, r21.w);
            r20.z = 1 + r20.z;
            r20.z = 1 / r20.z;
            r22.w = r17.w ? 1.000000 : 0;
            r23.w = r20.w + -r20.z;
            r20.z = r22.w * r23.w + r20.z;
            r21.w = r21.w * r21.w;
            r20.z = r21.w * r20.z;
          } else {
            r25.xyz = cb4[r18.x+6].www * r22.xyz;
            r21.w = dot(r25.xyz, r25.xyz);
            r21.w = min(1, r21.w);
            r21.w = 1 + -r21.w;
            r21.w = log2(r21.w);
            r18.z = r21.w * r18.z;
            r18.z = exp2(r18.z);
            r20.z = r20.w * r18.z;
          }
          r18.z = dot(r24.yzx, -r21.xyz);
          r18.z = -cb4[r20.x+6].z + r18.z;
          r18.z = saturate(cb4[r20.x+6].w * r18.z);
          r18.z = r18.z * r18.z + -1;
          r18.z = r19.w * r18.z + 1;
          r18.z = r20.z * r18.z;
          r19.w = (int)cb4[r18.w+6].w;
          r17.w = ~(int)r17.w;
          r20.z = cmp((int)r19.w >= 0);
          r17.w = r17.w ? r20.z : 0;
          if (r17.w != 0) {
            if (r11.y == 0) {
              r11.y = (uint)r19.w << 2;
              r21.xyz = cb7[r11.y+33].xyw * r9.yyy;
              r21.xyz = cb7[r11.y+32].xyw * r9.xxx + r21.xyz;
              r21.xyz = cb7[r11.y+34].xyw * r9.zzz + r21.xyz;
              r21.xyz = cb7[r11.y+35].xyw + r21.xyz;
              r20.zw = saturate(r21.xy / r21.zz);
              r20.zw = r20.zw * cb7[r19.w+0].zw + cb7[r19.w+0].xy;
            } else {
              r11.y = (uint)r19.w << 2;
              r21.x = dot(-r22.xyz, cb7[r11.y+32].xyz);
              r21.y = dot(-r22.xyz, cb7[r11.y+33].xyz);
              r21.z = dot(-r22.xyz, cb7[r11.y+34].xyz);
              r11.y = cmp(abs(r21.x) < abs(r21.y));
              r11.y = r11.y ? 0.000000 : 0;
              r17.w = dot(abs(r21.xy), icb[r11.y+0].xy);
              r17.w = cmp(r17.w < abs(r21.z));
              r11.y = r17.w ? 2 : r11.y;
              r17.w = dot(r21.xyz, icb[r11.y+0].xyz);
              r17.w = cmp(r17.w < 0);
              bitmask.y = ((~(-1 << 31)) << 1) & 0xffffffff;  r11.y = (((uint)r11.y << 1) & bitmask.y) | ((uint)r17.w & ~bitmask.y);
              r17.w = (uint)r11.y >> 1;
              r17.w = dot(r21.xyz, icb[r17.w+0].xyz);
              r21.w = 0.000244140625 / cb7[r19.w+0].w;
              r21.w = 0.5 + -r21.w;
              r22.x = (uint)r11.y;
              r22.y = cmp((uint)r11.y < 2);
              r22.y = r22.y ? 0.000000 : 0;
              r21.x = dot(r21.xz, icb[r22.y+0].xz);
              r21.x = icb[r11.y+4].z * r21.x;
              r21.x = r21.x / abs(r17.w);
              r21.x = r21.x * r21.w + r22.x;
              r21.x = 0.5 + r21.x;
              r22.x = saturate(0.166666672 * r21.x);
              r21.x = -1 + (int)icb[r11.y+4].y;
              r21.x = dot(r21.yz, icb[r21.x+0].xy);
              r11.y = icb[r11.y+4].w * r21.x;
              r11.y = r11.y / abs(r17.w);
              r22.y = saturate(-r11.y * r21.w + 0.5);
              r20.zw = r22.xy * cb7[r19.w+0].zw + cb7[r19.w+0].xy;
            }
            r11.y = t20.SampleLevel(s1_s, r20.zw, 0).x;
            r18.z = r18.z * r11.y;
          }
          r11.y = r18.z * r15.x;
          r15.x = cmp(9.99999975e-05 < r11.y);
          if (r15.x != 0) {
            if (r18.y != 0) {
              r15.x = -cb4[r20.y+6].w + 1;
              r17.w = dot(r11.xzw, r24.xyz);
              r17.w = saturate(0.5 + r17.w);
              r18.z = r17.w * -2 + 3;
              r17.w = r17.w * r17.w;
              r17.w = r18.z * r17.w;
              r15.x = r17.w * cb4[r20.y+6].w + r15.x;
              r15.x = cb4[r20.y+6].x * r15.x;
              r15.x = r15.x * r11.y;
              r21.xyz = cb4[r15.y+6].xyz + -r17.xyz;
              r21.xyz = r15.xxx * r21.xyz + r17.xyz;
            }
            if (r18.y == 0) {
              r15.x = dot(r8.xyz, r24.xyz);
              r17.w = saturate(r15.x);
              if (cb4[r15.z+6].w != 0) {
                r14.z = (int)r14.z & 2;
                r14.z = cmp((int)r14.z != 0);
                r14.z = (int)r14.z | (int)r16.w;
                if (r14.z != 0) {
                  r16.w = (int)cb4[r15.z+6].x;
                } else {
                  r22.xyz = -cb4[r18.x+6].xyz + r9.xyz;
                  r25.xyz = cmp(abs(r22.yzz) < abs(r22.xxy));
                  r18.z = r25.y ? r25.x : 0;
                  r22.xyz = cmp(float3(0,0,0) < r22.xyz);
                  r19.w = asuint(cb4[r20.x+6].w) >> 24;
                  if (8 == 0) r20.z = 0; else if (8+16 < 32) {                   r20.z = (uint)cb4[r20.x+6].w << (32-(8 + 16)); r20.z = (uint)r20.z >> (32-8);                  } else r20.z = (uint)cb4[r20.x+6].w >> 16;
                  if (8 == 0) r20.w = 0; else if (8+8 < 32) {                   r20.w = (uint)cb4[r20.x+6].w << (32-(8 + 8)); r20.w = (uint)r20.w >> (32-8);                  } else r20.w = (uint)cb4[r20.x+6].w >> 8;
                  r19.w = r22.x ? r19.w : r20.z;
                  r20.x = 255 & asint(cb4[r20.x+6].w);
                  r20.x = r22.y ? r20.w : r20.x;
                  if (8 == 0) r20.z = 0; else if (8+8 < 32) {                   r20.z = (uint)cb4[r15.z+6].x << (32-(8 + 8)); r20.z = (uint)r20.z >> (32-8);                  } else r20.z = (uint)cb4[r15.z+6].x >> 8;
                  r20.w = 255 & asint(cb4[r15.z+6].x);
                  r20.z = r22.z ? r20.z : r20.w;
                  r20.x = r25.z ? r20.x : r20.z;
                  r18.z = r18.z ? r19.w : r20.x;
                  r19.w = cmp((int)r18.z < 80);
                  r16.w = r19.w ? r18.z : -1;
                }
                r18.z = cmp((int)r16.w >= 0);
                if (r18.z != 0) {
                  r20.xzw = -cb4[r18.x+6].xyz + r9.xyz;
                  r18.x = (uint)r16.w << 2;
                  r18.z = dot(r20.xzw, r20.xzw);
                  r18.z = max(1.17549435e-38, r18.z);
                  r18.z = rsqrt(r18.z);
                  r20.xzw = r20.xzw * r18.zzz;
                  r20.xzw = -r20.xzw * cb5[r16.w+288].xxx + r9.xyz;
                  r18.z = cb5[r16.w+288].y * 5;
                  r20.xzw = r11.xzw * r18.zzz + r20.xzw;
                  r22.xyzw = cb5[r18.x+65].xyzw * r20.zzzz;
                  r22.xyzw = cb5[r18.x+64].xyzw * r20.xxxx + r22.xyzw;
                  r22.xyzw = cb5[r18.x+66].xyzw * r20.wwww + r22.xyzw;
                  r22.xyzw = cb5[r18.x+67].xyzw + r22.xyzw;
                  r20.xzw = r22.xyz / r22.www;
                  r22.xyz = cmp(float3(0,0,0) >= r20.xzw);
                  r25.xyz = cmp(r20.xzw >= float3(1,1,1));
                  r18.xz = cb5[r16.w+344].zw + -cb5[r16.w+344].xy;
                  r18.xz = r20.xz * r18.xz + cb5[r16.w+344].xy;
                  r26.xy = r18.xz * cb5[400].zw + float2(0.5,0.5);
                  r26.xy = floor(r26.xy);
                  r18.xz = r18.xz * cb5[400].zw + -r26.xy;
                  r27.xyzw = float4(0.5,1,0.5,1) + r18.xxzz;
                  r29.xyzw = r27.xxzz * r27.xxzz;
                  r26.zw = float2(1,1) + -r18.xz;
                  r27.xz = min(float2(0,0), r18.xz);
                  r30.xy = max(float2(0,0), r18.xz);
                  r31.xy = float2(0.159999996,0.159999996) * r26.zw;
                  r30.xy = -r30.xy * r30.xy + r27.yw;
                  r30.xy = float2(1,1) + r30.xy;
                  r30.xy = float2(0.159999996,0.159999996) * r30.xy;
                  r29.xz = float2(0.0799999982,0.0799999982) * r29.xz;
                  r18.xz = r29.yw * float2(0.5,0.5) + -r18.xz;
                  r32.xy = float2(0.159999996,0.159999996) * r18.xz;
                  r18.xz = -r27.xz * r27.xz + r26.zw;
                  r18.xz = float2(1,1) + r18.xz;
                  r33.xy = float2(0.159999996,0.159999996) * r18.xz;
                  r18.xz = float2(0.159999996,0.159999996) * r27.yw;
                  r32.z = r33.x;
                  r32.w = r18.x;
                  r31.z = r30.x;
                  r31.w = r29.x;
                  r27.xyzw = r32.zwxz + r31.zwxz;
                  r33.z = r32.y;
                  r33.w = r18.z;
                  r30.z = r31.y;
                  r30.w = r29.z;
                  r29.xyz = r33.zyw + r30.zyw;
                  r31.xyz = r31.xzw / r27.zwy;
                  r31.xyz = float3(-2.5,-0.5,1.5) + r31.xyz;
                  r31.xyz = cb5[400].xxx * r31.xyz;
                  r30.xyz = r30.zyw / r29.xyz;
                  r30.xyz = float3(-2.5,-0.5,1.5) + r30.xyz;
                  r30.xyw = cb5[400].yyy * r30.xyz;
                  r32.xyzw = r29.xxxy * r27.zwyz;
                  r31.w = r30.x;
                  r33.xyzw = r26.xyxy * cb5[400].xyxy + r31.xwyw;
                  r18.x = t2.SampleCmpLevelZero(s3_s, r33.xy, r20.w).x;
                  r18.z = t2.SampleCmpLevelZero(s3_s, r33.zw, r20.w).x;
                  r18.z = r32.y * r18.z;
                  r18.x = r32.x * r18.x + r18.z;
                  r26.zw = r26.xy * cb5[400].xy + r31.zw;
                  r18.z = t2.SampleCmpLevelZero(s3_s, r26.zw, r20.w).x;
                  r18.x = r32.z * r18.z + r18.x;
                  r30.z = r31.x;
                  r33.xyzw = r26.xyxy * cb5[400].xyxy + r30.zyzw;
                  r18.z = t2.SampleCmpLevelZero(s3_s, r33.xy, r20.w).x;
                  r18.x = r32.w * r18.z + r18.x;
                  r32.xyzw = r29.yyzz * r27.xyzw;
                  r30.xz = r31.yz;
                  r31.xyzw = r26.xyxy * cb5[400].xyxy + r30.xyzy;
                  r18.z = t2.SampleCmpLevelZero(s3_s, r31.xy, r20.w).x;
                  r18.x = r32.x * r18.z + r18.x;
                  r18.z = t2.SampleCmpLevelZero(s3_s, r31.zw, r20.w).x;
                  r18.x = r32.y * r18.z + r18.x;
                  r18.z = t2.SampleCmpLevelZero(s3_s, r33.zw, r20.w).x;
                  r18.x = r32.z * r18.z + r18.x;
                  r26.zw = float2(1,1) + -r20.xz;
                  r20.xz = min(r26.zw, r20.xz);
                  r22.xyz = (int3)r22.xyz | (int3)r25.xyz;
                  r18.z = (int)r22.y | (int)r22.x;
                  r18.z = (int)r22.z | (int)r18.z;
                  r19.w = (int)r20.w & 0x7fffffff;
                  r19.w = cmp(0x7f800000 < (uint)r19.w);
                  r18.z = (int)r18.z | (int)r19.w;
                  r25.xyzw = r26.xyxy * cb5[400].xyxy + r30.xwzw;
                  r19.w = t2.SampleCmpLevelZero(s3_s, r25.xy, r20.w).x;
                  r18.x = r32.w * r19.w + r18.x;
                  r19.w = r29.z * r27.y;
                  r20.w = t2.SampleCmpLevelZero(s3_s, r25.zw, r20.w).x;
                  r18.x = r19.w * r20.w + r18.x;
                  r19.w = cb5[r16.w+288].z + -r22.w;
                  r19.w = 0.25 * r19.w;
                  r20.x = min(r20.x, r20.z);
                  r19.w = min(r20.x, r19.w);
                  r19.w = saturate(20 * r19.w);
                  r20.x = r19.w * -2 + 3;
                  r19.w = r19.w * r19.w;
                  r19.w = r20.x * r19.w;
                  r19.w = min(cb5[r16.w+288].w, r19.w);
                  r14.z = r14.z ? r19.w : cb5[r16.w+288].w;
                  r16.w = -1 + r18.x;
                  r16.w = r18.z ? 0 : r16.w;
                  r14.z = r14.z * r16.w + 1;
                } else {
                  r16.w = dot(r4.xyw, r24.xyz);
                  r14.z = saturate(1 + r16.w);
                }
              } else {
                r14.z = 1;
              }
              if (cb4[r15.z+6].w == 0) {
                r20.xzw = cb4[r15.y+6].xyz * r11.yyy;
                r16.w = -cb4[r20.y+6].y + 1;
                r18.x = max(r20.x, r20.z);
                r18.x = max(r18.x, r20.w);
                r18.x = r18.x * r6.y;
                r18.x = max(1, r18.x);
                r18.x = 1 / r18.x;
                r16.w = r18.x * cb4[r20.y+6].y + r16.w;
                r20.xzw = cb4[r15.y+6].xyz * r16.www;
                r16.w = cb4[r20.y+6].x * 0.25;
                r18.x = saturate(0.5 + r15.x);
                r18.z = -cb4[r20.y+6].x * 0.25 + 1;
                r16.w = r18.x * r18.z + r16.w;
                r20.xzw = r20.xzw * r16.www;
                r22.xyz = r28.xzw;
                r25.xyz = r28.xzw;
                r16.w = 1;
                r18.x = 0;
              } else {
                r18.z = cmp(3 == asint(cb4[r15.z+6].w));
                if (r18.z != 0) {
                  r26.xy = cb4[r20.y+6].xx * float2(-0.600000024,-0.399999976) + float2(0.800000012,0.899999976);
                  r18.z = r26.y + -r26.x;
                  r19.w = -r26.x + r13.x;
                  r18.z = 1 / r18.z;
                  r18.z = saturate(r19.w * r18.z);
                  r19.w = r18.z * -2 + 3;
                  r18.z = r18.z * r18.z;
                  r18.z = r19.w * r18.z;
                  r18.z = r18.z * r14.z;
                  r11.y = r18.z * r11.y;
                  r26.xyz = cb0[6].xyz * r24.zxy;
                  r26.xyz = cb0[6].zxy * r24.xyz + -r26.xyz;
                  r27.xyz = cb0[6].zxy * r26.xyz;
                  r26.xyz = cb0[6].yzx * r26.yzx + -r27.xyz;
                  r18.z = dot(r26.xyz, r26.xyz);
                  r18.z = rsqrt(r18.z);
                  r26.xyz = r26.xyz * r18.zzz;
                  r17.w = saturate(dot(r8.xyz, -r26.xyz));
                  r22.xyz = cb4[r20.y+6].yyy * r12.xyz + float3(0.5,0.5,0.5);
                  r25.xyz = float3(0,0,0);
                  r16.w = 1;
                  r18.x = 0;
                } else {
                  r18.z = cmp(1 == asint(cb4[r15.z+6].w));
                  if (r18.z != 0) {
                    r15.x = cb4[r20.y+6].x + r15.x;
                    r15.x = saturate(max(-1, r15.x));
                    r17.w = r15.x * r14.z;
                    r25.xyz = cb4[r20.y+6].yyy * r19.xyz;
                    r16.w = 1;
                    r18.x = 0;
                  } else {
                    r14.z = cmp(2 == asint(cb4[r15.z+6].w));
                    if (r14.z != 0) {
                      r15.x = cb4[r20.y+6].x + 0.0500000007;
                      r15.x = -r15.x + r3.y;
                      r15.x = saturate(-10 * r15.x);
                      r19.w = r15.x * -2 + 3;
                      r15.x = r15.x * r15.x;
                      r15.x = r19.w * r15.x;
                      r19.w = -cb4[r20.y+6].z + 1;
                      r19.w = r6.x * cb4[r20.y+6].z + r19.w;
                      r16.w = r19.w * r15.x;
                    } else {
                      r16.w = 1;
                    }
                    r18.x = r14.z ? cb4[r20.y+6].y : 0;
                    r25.xyz = float3(0,0,0);
                  }
                  r22.xyz = r18.zzz ? r10.xyz : 0;
                }
                r20.xzw = cb4[r15.y+6].xyz;
              }
              r14.z = cmp(3 != asint(cb4[r15.z+6].w));
              if (r14.z != 0) {
                r14.z = r18.x * r3.x + r3.z;
                r15.xyz = r1.xyz * r1.www + r24.xyz;
                r18.x = dot(r15.xyz, r15.xyz);
                r18.x = rsqrt(r18.x);
                r15.xyz = r18.xxx * r15.xyz;
                r15.x = dot(r16.xyz, r15.xyz);
                r15.y = r14.z * r14.z;
                r15.z = r15.x * r15.y + -r15.x;
                r15.x = r15.z * r15.x + 1;
                r15.x = r15.x * r15.x;
                r15.z = cmp(r15.x != r15.y);
                r15.x = r15.y / r15.x;
                r15.x = r15.z ? r15.x : 1;
                r14.z = r6.w * 2 + r14.z;
                r14.z = 9.99999975e-05 + r14.z;
                r14.z = 0.5 / r14.z;
                r14.z = r15.x * r14.z + -6.10351562e-05;
                r14.z = max(0, r14.z);
                r14.z = min(20, r14.z);
                r15.xyz = r23.xyz * r14.zzz;
                r15.xyz = r15.xyz * r16.www;
                r15.xyz = cb4[r18.w+6].zzz * r15.xyz;
              } else {
                r15.xyz = float3(0,0,0);
              }
              r18.xzw = r20.xzw * r11.yyy;
              r20.xyz = -r25.xyz + r22.xyz;
              r20.xyz = r17.www * r20.xyz + r25.xyz;
              r20.xyz = r20.xyz * r18.xzw;
              r15.xyz = r18.xzw * r15.xyz;
              r15.xyz = r15.xyz * r17.www;
              r15.xyz = r20.xyz * r5.yyy + r15.xyz;
              r17.xyz = r17.xyz + r15.xyz;
            }
          } else {
            r18.y = 0;
          }
          r17.xyz = r18.yyy ? r21.xyz : r17.xyz;
        }
      }
      r10.w = r12.w;
    }
    r13.yzw = r17.xyz;
    r6.z = (int)r6.z + 1;
  }
  r1.x = cmp(0.5 < cb6[3].x);
  if (r1.x != 0) {
    r1.x = dot(r13.yzw, float3(0.212672904,0.715152204,0.0721750036));
    r3.xyz = r13.yzw + -r1.xxx;
    r1.xyz = cb6[3].zzz * r3.xyz + r1.xxx;
    r1.xyz = float3(-0.5,-0.5,-0.5) + r1.xyz;
    r1.xyz = cb6[3].www * r1.xyz + float3(0.5,0.5,0.5);
    r3.xyz = cb6[3].yyy * r1.xyz;
    r1.xyz = -r1.xyz * cb6[3].yyy + cb6[8].xyz;
    r1.xyz = cb6[8].www * r1.xyz + r3.xyz;
    r2.w = -cb6[4].x + 1;
    r5.w = saturate(r5.w);
    r3.x = 1 + -r5.w;
    r3.y = 1 + -r2.w;
    r2.w = r3.x + -r2.w;
    r3.x = 1 / r3.y;
    r2.w = saturate(r3.x * r2.w);
    r3.x = r2.w * -2 + 3;
    r2.w = r2.w * r2.w;
    r2.w = r3.x * r2.w;
    r3.xyz = cb6[9].xyz * r2.www;
    r13.yzw = r3.xyz * cb6[4].yyy + r1.xyz;
  }
  r1.xyz = cb1[27].yyy * r13.yzw;
  r2.w = cmp(1.000000 == cb6[2].x);
  o0.w = r2.w ? r7.w : 1;
  r2.w = cmp(cb1[119].w < 0.5);
  if (r2.w != 0) {
    r2.w = r1.w * r0.w;
    r3.x = r9.y * cb1[74].w + cb1[75].w;
    r3.y = r2.w * cb1[72].w + -cb1[71].w;
    r3.xy = max(float2(0.00999999978,0), r3.xy);
    r3.z = -1.44269502 * r3.x;
    r3.z = exp2(r3.z);
    r3.z = 1 + -r3.z;
    r3.x = r3.z / r3.x;
    r3.z = r9.y * cb1[74].w + cb1[76].w;
    r3.z = 1.44269502 * r3.z;
    r3.z = exp2(r3.z);
    r3.x = r3.x * r3.z;
    r3.x = -r3.y * r3.x;
    r3.xyz = cb1[73].xyz * r3.xxx;
    r3.xyz = float3(1.44269502,1.44269502,1.44269502) * r3.xyz;
    r3.xyz = exp2(r3.xyz);
    r3.w = dot(-r2.xyz, cb1[72].xyz);
    r4.x = cb1[73].w * cb1[73].w + 1;
    r4.y = dot(r3.ww, cb1[73].ww);
    r4.x = r4.x + -r4.y;
    r4.y = cmp(0 < cb1[83].z);
    if (r4.y != 0) {
      r14.w = 7 & asint(cb1[26].w);
      r4.yzw = mad((int3)r14.xyw, int3(0x19660d,0x19660d,0x19660d), int3(0x3c6ef35f,0x3c6ef35f,0x3c6ef35f));
      r4.y = mad((int)r4.z, (int)r4.w, (int)r4.y);
      r4.z = mad((int)r4.w, (int)r4.y, (int)r4.z);
      r4.w = mad((int)r4.y, (int)r4.z, (int)r4.w);
      r6.x = mad((int)r4.z, (int)r4.w, (int)r4.y);
      r0.x = dot(-r2.xyz, -r0.xyz);
      r0.y = cmp(5.96046448e-08 < r0.x);
      r0.x = 1 / r0.x;
      r0.x = r0.y ? r0.x : 0;
      r0.x = cb1[83].w * r0.x;
      r0.y = 1 / r2.w;
      r0.z = r0.x * r0.y;
      r4.y = r0.z * v2.y + cb0[44].y;
      r0.z = -r0.z * v2.y + v2.y;
      r0.x = -r0.x * r0.y + 1;
      r0.y = r0.x * r2.w;
      r5.y = cb1[77].z * r0.z;
      r0.z = cb1[80].x * r0.z;
      r0.z = max(-127, r0.z);
      r5.w = -cb1[77].x + r4.y;
      r5.w = cb1[77].z * r5.w;
      r5.yw = max(float2(-127,-127), r5.yw);
      r5.w = exp2(-r5.w);
      r5.w = cb1[77].y * r5.w;
      r6.z = cmp(5.96046448e-08 < abs(r5.y));
      r6.w = exp2(-r5.y);
      r6.w = 1 + -r6.w;
      r6.w = r6.w / r5.y;
      r5.y = -r5.y * 0.240226507 + 0.693147182;
      r5.y = r6.z ? r6.w : r5.y;
      r4.y = -cb1[80].z + r4.y;
      r4.y = cb1[80].x * r4.y;
      r4.y = max(-127, r4.y);
      r4.y = exp2(-r4.y);
      r4.y = cb1[80].y * r4.y;
      r6.z = cmp(5.96046448e-08 < abs(r0.z));
      r6.w = exp2(-r0.z);
      r6.w = 1 + -r6.w;
      r6.w = r6.w / r0.z;
      r0.z = -r0.z * 0.240226507 + 0.693147182;
      r0.z = r6.z ? r6.w : r0.z;
      r0.z = r4.y * r0.z;
      r0.z = r5.w * r5.y + r0.z;
      r5.yw = saturate(r2.ww * cb1[78].wy + cb1[78].zx);
      r0.y = r0.z * r0.y;
      r0.y = exp2(-r0.y);
      r0.y = min(1, r0.y);
      r0.y = max(cb1[79].w, r0.y);
      r0.y = r0.y + r5.w;
      r0.y = r0.y + r5.y;
      r0.y = min(1, r0.y);
      r6.y = mad((int)r4.w, (int)r6.x, (int)r4.z);
      r4.yz = (uint2)r6.xy >> int2(16,16);
      r4.yz = (uint2)r4.yz;
      r4.yz = r4.yz * float2(3.05180438e-05,3.05180438e-05) + float2(-1,-1);
      r4.yz = r4.yz * cb1[87].ww + r5.xz;
      r6.xy = cb1[85].xy * r4.yz;
      r4.y = v0.w * cb1[84].x + cb1[84].y;
      r4.y = log2(r4.y);
      r4.y = cb1[84].z * r4.y;
      r6.z = r4.y / cb1[83].z;
      r6.xyzw = t21.SampleLevel(s1_s, r6.xyz, 0).xyzw;
      r4.y = -cb1[86].z + v0.w;
      r4.y = saturate(1000000 * r4.y);
      r6.xyzw = float4(-0,-0,-0,-1) + r6.xyzw;
      r6.xyzw = r4.yyyy * r6.xyzw + float4(0,0,0,1);
      r4.y = 1 + -r0.y;
      r4.z = saturate(dot(r2.xyz, cb1[81].xyz));
      r4.z = log2(r4.z);
      r4.z = cb1[82].w * r4.z;
      r4.z = exp2(r4.z);
      r5.xzw = cb1[82].xyz * r4.zzz;
      r0.x = r0.x * r2.w + -cb1[81].w;
      r0.x = max(0, r0.x);
      r0.x = r0.z * r0.x;
      r0.x = exp2(-r0.x);
      r0.x = min(1, r0.x);
      r0.x = 1 + -r0.x;
      r5.xzw = r5.xzw * r0.xxx;
      r0.x = 1 + -r5.y;
      r5.xyz = r5.xzw * r0.xxx;
      r4.yzw = cb1[79].xyz * r4.yyy + r5.xyz;
      r4.yzw = r4.yzw * r6.www + r6.xyz;
      r0.x = r6.w * r0.y;
    } else {
      r0.y = cb1[77].z * v2.y;
      r0.z = cb1[80].x * v2.y;
      r0.yz = max(float2(-127,-127), r0.yz);
      r5.x = -cb1[77].x + cb0[44].y;
      r5.x = cb1[77].z * r5.x;
      r5.x = max(-127, r5.x);
      r5.x = exp2(-r5.x);
      r5.x = cb1[77].y * r5.x;
      r5.y = cmp(5.96046448e-08 < abs(r0.y));
      r5.z = exp2(-r0.y);
      r5.z = 1 + -r5.z;
      r5.z = r5.z / r0.y;
      r0.y = -r0.y * 0.240226507 + 0.693147182;
      r0.y = r5.y ? r5.z : r0.y;
      r5.y = -cb1[80].z + cb0[44].y;
      r5.y = cb1[80].x * r5.y;
      r5.y = max(-127, r5.y);
      r5.y = exp2(-r5.y);
      r5.y = cb1[80].y * r5.y;
      r5.z = cmp(5.96046448e-08 < abs(r0.z));
      r5.w = exp2(-r0.z);
      r5.w = 1 + -r5.w;
      r5.w = r5.w / r0.z;
      r0.z = -r0.z * 0.240226507 + 0.693147182;
      r0.z = r5.z ? r5.w : r0.z;
      r0.z = r5.y * r0.z;
      r0.y = r5.x * r0.y + r0.z;
      r5.xy = saturate(r2.ww * cb1[78].wy + cb1[78].zx);
      r0.z = r0.y * r2.w;
      r0.z = exp2(-r0.z);
      r0.z = min(1, r0.z);
      r0.z = max(cb1[79].w, r0.z);
      r0.z = r0.z + r5.y;
      r0.z = r0.z + r5.x;
      r0.x = min(1, r0.z);
      r2.x = saturate(dot(r2.xyz, cb1[81].xyz));
      r2.x = log2(r2.x);
      r2.x = cb1[82].w * r2.x;
      r2.x = exp2(r2.x);
      r2.xyz = cb1[82].xyz * r2.xxx;
      r0.w = r0.w * r1.w + -cb1[81].w;
      r0.w = max(0, r0.w);
      r0.y = r0.y * r0.w;
      r0.y = exp2(-r0.y);
      r0.y = min(1, r0.y);
      r0.yz = float2(1,1) + -r0.yx;
      r2.xyz = r2.xyz * r0.yyy;
      r0.y = 1 + -r5.x;
      r2.xyz = r2.xyz * r0.yyy;
      r4.yzw = cb1[79].xyz * r0.zzz + r2.xyz;
    }
    r0.yzw = r3.xyz * r0.xxx;
    r1.w = r3.w * r3.w + 1;
    r1.w = 0.0596831031 * r1.w;
    r2.xyz = cb1[74].xyz * r1.www + cb1[76].xyz;
    r1.w = -cb1[73].w * cb1[73].w + 1;
    r2.w = 12.566371 * r4.x;
    r3.w = sqrt(r4.x);
    r2.w = r3.w * r2.w;
    r2.w = max(0.00100000005, r2.w);
    r1.w = r1.w / r2.w;
    r2.xyz = saturate(cb1[75].xyz * r1.www + r2.xyz);
    r2.xyz = float3(255,255,255) * r2.xyz;
    r3.xyz = float3(1,1,1) + -r3.xyz;
    r2.xyz = r3.xyz * r2.xyz;
    r2.xyz = r2.xyz * r0.xxx + r4.yzw;
    o0.xyz = r1.xyz * r0.yzw + r2.xyz;
  } else {
    o0.xyz = r1.xyz;
  }
  o1.z = 1;
  return;
}

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Thu Jul 23 16:07:53 2026
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Position              0   xyzw        0      POS   float   xy w
// TEXCOORD                 0   xy          1     NONE   float   xy
// TEXCOORD                 1   xyz         2     NONE   float   xyz
// TEXCOORD                 2   xyz         3     NONE   float   xyz
// TEXCOORD                 3   xyzw        4     NONE   float   xyzw
// TEXCOORD                 4   xyz         5     NONE   float   xyz
// TEXCOORD                 5   xyz         6     NONE   float   xyz
// TEXCOORD                 6   xyz         7     NONE   float   xyz
// TEXCOORD                 7   xyzw        8     NONE   float   xyzw
// TEXCOORD                 8   xyz         9     NONE   float   xyz
// TEXCOORD                 9   x          10     NONE    uint   x
// SV_IsFrontFace           0   x          11    FFACE    uint   x
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
// SV_Target                1   xyzw        1   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_immediateConstantBuffer { { 1.000000, 0, 0, 0},
                              { 0, 1.000000, 0, 0},
                              { 0, 0, 1.000000, 0},
                              { 0, 0, 0, 1.000000},
                              { 2, 1, -1.000000, 1.000000},
                              { 2, 1, 1.000000, 1.000000},
                              { 0, 2, 1.000000, -1.000000},
                              { 0, 2, 1.000000, 1.000000},
                              { 0, 1, 1.000000, 1.000000},
                              { 0, 1, -1.000000, 1.000000} }
dcl_constantbuffer CB0[45], immediateIndexed
dcl_constantbuffer CB1[138], immediateIndexed
dcl_constantbuffer CB2[4094], dynamicIndexed
dcl_constantbuffer CB3[3], immediateIndexed
dcl_constantbuffer CB4[2054], dynamicIndexed
dcl_constantbuffer CB5[401], dynamicIndexed
dcl_constantbuffer CB6[21], immediateIndexed
dcl_constantbuffer CB7[160], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_comparison
dcl_resource_structured t0, 4
dcl_resource_structured t1, 16
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture3d (float,float,float,float) t4
dcl_resource_texture3d (float,float,float,float) t5
dcl_resource_texture3d (float,float,float,float) t6
dcl_resource_texture3d (float,float,float,float) t7
dcl_resource_texture3d (float,float,float,float) t8
dcl_resource_texture3d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_texture2d (float,float,float,float) t11
dcl_resource_texture2d (float,float,float,float) t12
dcl_resource_texture2d (float,float,float,float) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_texture2d (float,float,float,float) t15
dcl_resource_texture2d (float,float,float,float) t16
dcl_resource_texture2d (float,float,float,float) t17
dcl_resource_texture2d (float,float,float,float) t18
dcl_resource_texturecube (float,float,float,float) t19
dcl_resource_texture2d (float,float,float,float) t20
dcl_resource_texture3d (float,float,float,float) t21
dcl_input_ps_siv linear noperspective v0.xyw, position
dcl_input_ps linear v1.xy
dcl_input_ps linear v2.xyz
dcl_input_ps linear v3.xyz
dcl_input_ps linear v4.xyzw
dcl_input_ps linear v5.xyz
dcl_input_ps linear v6.xyz
dcl_input_ps linear v7.xyz
dcl_input_ps linear v8.xyzw
dcl_input_ps linear v9.xyz
dcl_input_ps constant v10.x
dcl_input_ps_sgv constant v11.x, is_front_face
dcl_output o0.xyzw
dcl_output o1.xyzw
dcl_temps 38
mov r0.x, cb0[0].z
mov r0.y, cb0[1].z
mov r0.z, cb0[2].z
add r1.xyz, r0.xyzx, v2.xyzx
mad r1.xyz, cb1[4].wwww, r1.xyzx, -v2.xyzx
dp3 r0.w, r1.xyzx, r1.xyzx
max r1.w, r0.w, l(9.999999939E-09)
rsq r1.w, r1.w
mul r2.xyz, r1.wwww, r1.xyzx
ishl r2.w, v10.x, l(4)
and r3.x, l(16), cb2[r2.w + 4].w
if_nz r3.x
  iadd r3.y, l(2), cb2[r2.w + 5].x
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.x, r3.y, l(12), t1.xxxx
  ld_structured_indexable(structured_buffer, stride=16)(mixed,mixed,mixed,mixed) r4.y, cb2[r2.w + 5].x, l(12), t1.xxxx
else
  mov r4.xy, cb2[r2.w + 3].zxzz
endif
sample_b_indexable(texture2d)(float,float,float,float) r5.xyzw, v1.xyxx, t16.xyzw, s2, cb1[26].x
sample_b_indexable(texture2d)(float,float,float,float) r6.xyzw, v1.xyxx, t17.xyzw, s2, cb1[26].x
add r3.y, -r6.w, l(1.000000)
mul r7.xyzw, r5.xyzw, cb6[6].xyzw
mul r8.xyz, r7.xyzx, cb6[4].zzzz
dp3 r3.z, r8.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
mad r8.xyz, r7.xyzx, cb6[4].zzzz, -r3.zzzz
mad r8.xyz, cb6[4].wwww, r8.xyzx, r3.zzzz
sample_b_indexable(texture2d)(float,float,float,float) r9.xyz, v1.xyxx, t18.xywz, s2, cb1[26].x
mul r9.x, r9.x, r9.z
mad r3.zw, r9.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
dp2 r4.z, r3.zwzz, r3.zwzz
min r4.z, r4.z, l(1.000000)
add r4.z, -r4.z, l(1.000000)
sqrt r4.z, r4.z
max r4.z, r4.z, l(1.000000017E-16)
mul r3.zw, r3.zzzw, cb6[0].wwww
add r9.xyz, v2.xyzx, cb0[44].xyzx
add r10.xz, -r4.yyxy, r9.xxzx
mov r10.y, l(0.0000610351562)
dp3 r4.x, r10.xyzx, r10.xyzx
rsq r4.x, r4.x
mul r4.xyw, r4.xxxx, r10.xyxz
mul r10.xyz, v3.zxyz, v4.yzxy
mad r10.xyz, v3.yzxy, v4.zxyz, -r10.xyzx
mul r10.xyz, r10.xyzx, v4.wwww
mul r11.xyz, r3.wwww, r10.xyzx
mad r11.xyz, r3.zzzz, v4.xyzx, r11.xyzx
mad r11.xyz, r4.zzzz, v3.xyzx, r11.xyzx
mad r3.z, cb6[1].y, l(2.000000), l(-1.000000)
movc r3.z, v11.x, l(1.000000), r3.z
dp3 r3.w, r11.xyzx, r11.xyzx
max r3.w, r3.w, l(1.175494351E-38)
rsq r3.w, r3.w
mul r11.xyz, r3.wwww, r11.xyzx
mul r12.xyz, r3.zzzz, r11.xyzx
dp3 r3.w, v3.xyzx, v3.xyzx
rsq r3.w, r3.w
mul r11.xzw, r3.wwww, v3.xxyz
mul r11.xzw, r3.zzzz, r11.xxzw
dp3 r3.w, v4.xyzx, r12.xyzx
mad r13.xyz, -r12.yzxy, r3.wwww, v4.yzxy
dp3 r3.w, r13.xyzx, r13.xyzx
rsq r3.w, r3.w
mul r13.xyz, r3.wwww, r13.xyzx
ftou r14.xy, v0.xyxx
lt r3.w, l(0.500000), cb1[117].x
movc r3.w, r3.w, cb1[117].y, cb2[r2.w + 13].x
and r4.z, r3.w, l(255)
utof r15.x, r4.z
ubfe r16.xy, l(8, 8, 0, 0), l(8, 16, 0, 0), r3.wwww
utof r15.yz, r16.xxyx
ushr r3.w, r3.w, l(24)
utof r15.w, r3.w
mul r16.xyzw, r15.xyzw, l(0.00392156886, 0.00392156886, 0.00392156886, 0.00392156886)
add r3.w, cb1[117].w, -cb2[r2.w + 13].y
mad r2.w, cb1[117].x, r3.w, cb2[r2.w + 13].y
add r2.w, -r9.y, r2.w
add r2.w, r2.w, l(0.200000)
mul_sat r2.w, r2.w, l(2.85714269)
mad r3.w, r2.w, l(-2.000000), l(3.000000)
mul r2.w, r2.w, r2.w
mul r2.w, r2.w, r3.w
mul r2.w, r16.y, r2.w
max r3.w, r2.w, r16.z
max r4.z, r3.w, r16.x
add r6.w, l(1.000000), -cb1[29].x
mad r6.w, cb1[119].w, r6.w, cb1[29].x
mul r6.w, r6.w, cb1[27].x
lt r8.w, cb1[108].y, l(0.500000)
if_nz r8.w
  mad r17.xyz, cb0[6].xzyx, -cb1[134].wwww, cb1[132].xzyx
  add r17.xyz, r9.xzyx, -r17.xyzx
  max r8.w, |r17.y|, |r17.x|
  add r8.w, r8.w, l(-464.000000)
  mul_sat r8.w, r8.w, l(0.031250)
  add r9.w, |r17.z|, l(-208.000000)
  mul_sat r9.w, r9.w, l(0.031250)
  max r8.w, r8.w, r9.w
  ne r9.w, l(0.000000), cb1[132].w
  lt r10.w, r8.w, l(1.000000)
  and r9.w, r9.w, r10.w
  if_nz r9.w
    mad r17.xyz, cb0[6].xzyx, -cb1[134].yyyy, cb1[132].xzyx
    add r17.xyz, r9.xzyx, -r17.xyzx
    max r9.w, |r17.y|, |r17.x|
    add r9.w, r9.w, l(-29.000000)
    mul_sat r9.w, r9.w, l(0.500000)
    add r10.w, |r17.z|, l(-13.000000)
    mul_sat r10.w, r10.w, l(0.500000)
    max r9.w, r9.w, r10.w
    lt r10.w, r9.w, l(1.000000)
    if_nz r10.w
      mad r17.xyz, r9.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
      mul r18.xyz, r17.xyzx, cb1[133].xyzx
      round_ni r18.xyz, r18.xyzx
      mad r17.xyz, r17.xyzx, cb1[133].xyzx, -r18.xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r18.xyw, r17.xyzx, t4.yzwx, s2, l(0.000000)
      add r10.w, -r9.w, l(1.000000)
      mul r13.w, l(0.500000), cb1[133].y
      mad r15.y, -cb1[133].y, l(0.500000), l(1.000000)
      max r13.w, r13.w, r17.y
      min r13.w, r15.y, r13.w
      mul r17.w, r13.w, l(0.333333343)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyzw, r17.xwzx, t5.xyzw, s1, l(0.000000)
      mad r13.w, r19.w, r10.w, r8.w
      add r20.xyz, r17.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r20.xyz, r20.xyzx, t5.xyzw, s1, l(0.000000)
      mad r20.xyz, r20.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r20.xyz, r18.yyyy, r20.xyzx
      mov r20.w, r18.y
      mul r20.xyzw, r10.wwww, r20.xyzw
      add r17.xyz, r17.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r17.xyz, r17.xyzx, t5.xyzw, s1, l(0.000000)
      mad r17.xyz, r17.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r17.xyz, r18.xxxx, r17.xyzx
      mov r17.w, r18.x
      mul r17.xyzw, r10.wwww, r17.xyzw
      mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r18.xyz, r18.wwww, r19.xyzx
      mul r18.xyzw, r10.wwww, r18.xyzw
    else
      mov r20.xyzw, l(0,0,0,0)
      mov r17.xyzw, l(0,0,0,0)
      mov r18.xyzw, l(0,0,0,0)
      mov r13.w, r8.w
    endif
    mad r19.xyz, cb0[6].xzyx, -cb1[134].zzzz, cb1[132].xzyx
    add r19.xyz, r9.xzyx, -r19.xyzx
    max r10.w, |r19.y|, |r19.x|
    add r10.w, r10.w, l(-116.000000)
    mul_sat r10.w, r10.w, l(0.125000)
    add r15.y, |r19.z|, l(-52.000000)
    mul_sat r15.y, r15.y, l(0.125000)
    max r10.w, r10.w, r15.y
    lt r15.y, r10.w, l(1.000000)
    if_nz r15.y
      mad r19.xyz, r9.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
      mul r21.xyz, r19.xyzx, cb1[133].xyzx
      round_ni r21.xyz, r21.xyzx
      mad r19.xyz, r19.xyzx, cb1[133].xyzx, -r21.xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r21.xyw, r19.xyzx, t6.yzwx, s2, l(0.000000)
      add r15.y, -r10.w, l(1.000000)
      mul r9.w, r9.w, r15.y
      mul r15.y, l(0.500000), cb1[133].y
      mad r15.z, -cb1[133].y, l(0.500000), l(1.000000)
      max r15.y, r15.y, r19.y
      min r15.y, r15.z, r15.y
      mul r19.w, r15.y, l(0.333333343)
      sample_l_indexable(texture3d)(float,float,float,float) r22.xyzw, r19.xwzx, t7.xyzw, s1, l(0.000000)
      mad r13.w, r22.w, r9.w, r13.w
      add r23.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r23.xyz, r23.xyzx, t7.xyzw, s1, l(0.000000)
      mad r23.xyz, r23.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r23.xyz, r21.yyyy, r23.xyzx
      mov r23.w, r21.y
      mad r20.xyzw, r23.xyzw, r9.wwww, r20.xyzw
      add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t7.xyzw, s1, l(0.000000)
      mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r19.xyz, r21.xxxx, r19.xyzx
      mov r19.w, r21.x
      mad r17.xyzw, r19.xyzw, r9.wwww, r17.xyzw
      mad r19.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r21.xyz, r21.wwww, r19.xyzx
      mad r18.xyzw, r21.xyzw, r9.wwww, r18.xyzw
    endif
    lt r9.w, l(0.000000), r10.w
    if_nz r9.w
      mad r19.xyz, r9.xyzx, l(0.125000, 0.125000, 0.125000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
      mul r21.xyz, r19.xyzx, cb1[133].xyzx
      mul r22.xyz, l(0.500000, 0.500000, 0.500000, 0.000000), cb1[133].xyzx
      round_ni r21.xyz, r21.xyzx
      mad r19.xyz, r19.xyzx, cb1[133].xyzx, -r21.xyzx
      mad r21.xyz, -cb1[133].xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), l(1.000000, 1.000000, 1.000000, 0.000000)
      max r19.xyz, r22.xyzx, r19.xyzx
      min r19.xyz, r21.xyzx, r19.xyzx
      sample_l_indexable(texture3d)(float,float,float,float) r23.xyw, r19.xyzx, t8.yzwx, s2, l(0.000000)
      add r9.w, -r8.w, l(1.000000)
      mul r9.w, r9.w, r10.w
      max r10.w, r22.y, r19.y
      min r10.w, r21.y, r10.w
      mul r19.w, r10.w, l(0.333333343)
      sample_l_indexable(texture3d)(float,float,float,float) r21.xyzw, r19.xwzx, t9.xyzw, s1, l(0.000000)
      add r22.xyz, r19.xwzx, l(0.000000, 0.666666687, 0.000000, 0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r22.xyz, r22.xyzx, t9.xyzw, s1, l(0.000000)
      mad r22.xyz, r22.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r22.xyz, r23.yyyy, r22.xyzx
      mov r22.w, r23.y
      mad r20.xyzw, r22.xyzw, r9.wwww, r20.xyzw
      add r19.xyz, r19.xwzx, l(0.000000, 0.333333343, 0.000000, 0.000000)
      sample_l_indexable(texture3d)(float,float,float,float) r19.xyz, r19.xyzx, t9.xyzw, s1, l(0.000000)
      mad r19.xyz, r19.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r19.xyz, r23.xxxx, r19.xyzx
      mov r19.w, r23.x
      mad r17.xyzw, r19.xyzw, r9.wwww, r17.xyzw
      mad r19.xyz, r21.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000), l(-2.000000, -2.000000, -2.000000, 0.000000)
      mul r23.xyz, r23.wwww, r19.xyzx
      mad r18.xyzw, r23.xyzw, r9.wwww, r18.xyzw
      mad r13.w, r21.w, r9.w, r13.w
    endif
    mad_sat r9.w, r13.w, l(2.000000), l(-1.000000)
    add r19.x, -r8.w, r9.w
    add r8.w, r8.w, r9.w
    mul r19.y, r8.w, l(0.500000)
  else
    mov r20.xyzw, l(0,0,0,0)
    mov r17.xyzw, l(0,0,0,0)
    mov r18.xyzw, l(0,0,0,0)
    mov r19.xy, l(0,1.000000,0,0)
  endif
  mul r21.xyzw, r19.yyyx, cb1[135].xyzw
  mad r21.y, r21.w, l(0.500000), r21.y
  mul r15.yz, r19.yyxy, cb1[135].wwyw
  mad r21.w, r15.z, l(0.375000), r15.y
  add r18.xyzw, r18.xyzw, r21.xyzw
  mul r21.xyzw, r19.yyyx, cb1[136].xyzw
  mad r21.y, r21.w, l(0.500000), r21.y
  mul r15.yz, r19.yyxy, cb1[136].wwyw
  mad r21.w, r15.z, l(0.375000), r15.y
  add r17.xyzw, r17.xyzw, r21.xyzw
  mul r21.xyzw, r19.yyyx, cb1[137].xyzw
  mad r21.y, r21.w, l(0.500000), r21.y
  mul r15.yz, r19.yyxy, cb1[137].wwyw
  mad r21.w, r15.z, l(0.375000), r15.y
  add r19.xyzw, r20.xyzw, r21.xyzw
  mov r12.w, l(1.000000)
  dp4 r20.x, r18.xyzw, r12.xyzw
  dp4 r20.y, r17.xyzw, r12.xyzw
  dp4 r20.z, r19.xyzw, r12.xyzw
  max r20.xyz, r20.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  mul r21.xyz, r6.wwww, r20.xyzx
  mul r22.xyz, r17.xyzx, l(0.715200, 0.715200, 0.715200, 0.000000)
  mad r22.xyz, r18.xyzx, l(0.212600, 0.212600, 0.212600, 0.000000), r22.xyzx
  mad r22.xyz, r19.xyzx, l(0.072200, 0.072200, 0.072200, 0.000000), r22.xyzx
  dp3 r8.w, r22.xyzx, r22.xyzx
  max r8.w, r8.w, l(1.175494351E-38)
  rsq r8.w, r8.w
  mul r22.xyz, r8.wwww, r22.xyzx
  mov r22.y, |r22.y|
  mov r22.w, l(1.000000)
  dp4 r18.x, r18.xyzw, r22.xyzw
  dp4 r18.y, r17.xyzw, r22.xyzw
  dp4 r18.z, r19.xyzw, r22.xyzw
  max r17.xyz, r18.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  ge r8.w, r21.y, r21.z
  and r8.w, r8.w, l(0x3f800000)
  mov r18.xy, r21.zyzz
  mov r18.zw, l(0,0,-1.000000,0.666666687)
  mad r19.xy, r20.yzyy, r6.wwww, -r18.xyxx
  mov r19.zw, l(0,0,1.000000,-1.000000)
  mad r18.xyzw, r8.wwww, r19.xyzw, r18.xyzw
  ge r8.w, r21.x, r18.x
  and r8.w, r8.w, l(0x3f800000)
  mov r19.xyz, r18.xywx
  mov r19.w, r21.x
  mov r18.xyw, r19.wywx
  add r18.xyzw, -r19.xyzw, r18.xyzw
  mad r18.xyzw, r8.wwww, r18.xyzw, r19.xyzw
  min r8.w, r18.y, r18.w
  add r8.w, -r8.w, r18.x
  add r9.w, -r18.y, r18.w
  mad r10.w, r8.w, l(6.000000), l(0.000100)
  div r9.w, r9.w, r10.w
  add r9.w, r9.w, r18.z
  frc r9.w, |r9.w|
  add r10.w, r18.x, l(0.000100)
  div r8.w, r8.w, r10.w
  add r19.xyzw, r9.wwww, l(-0.500000, 1.000000, 0.666666687, 0.333333343)
  add r9.w, |r19.x|, l(-0.450000)
  mul_sat r9.w, r9.w, l(-10.000001)
  mad r10.w, r9.w, l(-2.000000), l(3.000000)
  mul r9.w, r9.w, r9.w
  mul r9.w, r9.w, r10.w
  mad r9.w, r9.w, l(-0.350000), l(0.700000)
  mov_sat r18.x, r18.x
  mul r9.w, r9.w, r18.x
  min r8.w, r8.w, r9.w
  add r9.w, -r8.w, l(2.000000)
  div r9.w, l(2.000000), r9.w
  frc r18.xyz, r19.yzwy
  mad r18.xyz, r18.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000), l(-3.000000, -3.000000, -3.000000, 0.000000)
  add_sat r18.xyz, |r18.xyzx|, l(-1.000000, -1.000000, -1.000000, 0.000000)
  add r18.xyz, r18.xyzx, l(-1.000000, -1.000000, -1.000000, 0.000000)
  mad r18.xyz, r8.wwww, r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  mul r18.xyz, r9.wwww, r18.xyzx
  max r8.w, r17.y, r17.x
  max r8.w, r17.z, r8.w
  mul r6.w, r6.w, r8.w
  mov r8.w, l(1.000000)
else
  mov r22.xyz, l(0,0,0,0)
  mov r21.xyz, l(1.000000,1.000000,1.000000,0)
  mov r18.xyz, cb1[109].xyzx
  mov r8.w, l(0)
endif
add r9.w, l(1.000000), -cb6[18].z
mad r9.w, r4.z, r9.w, cb6[18].z
mul r9.w, r9.w, cb6[18].x
lt r10.w, l(0.500000), cb6[19].w
if_nz r10.w
  sample_b_indexable(texture2d)(float,float,float,float) r17.xyzw, v1.xyxx, t11.xyzw, s2, cb1[26].x
  add r10.w, -r17.z, l(1.000000)
  add r10.w, -r3.y, r10.w
  mad r3.y, r4.z, r10.w, r3.y
  mul r9.w, r9.w, r17.x
  mad r10.w, r17.y, l(2.000000), l(-1.000000)
  max r10.w, r10.w, l(-0.950000)
  min r17.x, r10.w, l(0.950000)
  mad r10.w, -r5.w, cb6[6].w, r17.w
  mad r10.w, r4.z, r10.w, r7.w
  add r10.w, r10.w, l(1.000000)
  add_sat r17.y, r10.w, -cb6[17].w
else
  mul_sat r10.w, r7.w, l(0.500000)
  add r12.w, l(0.500000), -cb6[20].x
  mad r10.w, r10.w, r12.w, cb6[20].x
  mov r17.x, -r10.w
  mad r5.w, r5.w, cb6[6].w, l(1.000000)
  add_sat r17.y, r5.w, -cb6[17].w
endif
add r19.xyz, -cb6[15].xyzx, cb6[16].xyzx
mad r19.xyz, r4.zzzz, r19.xyzx, cb6[15].xyzx
dp3_sat r5.w, r12.xyzx, r2.xyzx
add r10.w, -r5.w, l(1.050000)
add r12.w, r17.y, r17.y
log r10.w, r10.w
mul r10.w, r10.w, r12.w
exp r10.w, r10.w
min r10.w, r10.w, l(1.000000)
add r12.w, -cb6[18].w, cb6[19].x
mad r10.w, r10.w, r12.w, cb6[18].w
mul r20.xyz, r7.xyzx, r19.xyzx
mad r23.xyz, -r7.xyzx, r19.xyzx, cb6[17].xyzx
mad r20.xyz, r10.wwww, r23.xyzx, r20.xyzx
mul r23.xyz, r8.xyzx, r19.xyzx
mad r19.xyz, -r8.xyzx, r19.xyzx, cb6[17].xyzx
mad r19.xyz, r10.wwww, r19.xyzx, r23.xyzx
mad r10.w, r15.x, l(0.00392156886), r3.w
min r10.w, r10.w, l(1.000000)
add r10.w, r10.w, -cb6[5].x
lt r10.w, l(0.010000), r10.w
if_nz r10.w
  ge r10.w, l(2.54999971), r15.x
  and r10.w, r10.w, l(0x3f800000)
  ge r12.w, r3.w, l(0.010000)
  and r12.w, r12.w, l(0x3f800000)
  mul r10.w, r10.w, r12.w
  ne r10.w, r10.w, l(0.000000)
  mul r23.xyzw, v9.xyxz, l(1.000000, -1.000000, 1.000000, 1.000000)
  movc r23.xyzw, r3.xxxx, r23.xyzw, v9.xzxy
  mul r24.xyzw, r23.xyzw, cb1[117].zzzz
  movc r15.yz, r3.xxxx, v7.zzyz, v7.yyzy
  mad r25.xyz, v3.xyzx, v3.yyyy, l(0.000000, -1.000000, 0.000000, 0.000000)
  dp3 r12.w, r25.xyzx, v4.xyzx
  mul r26.xyz, v7.zxyz, v8.yzxy
  mad r26.xyz, v7.yzxy, v8.zxyz, -r26.xyzx
  mul r26.xyz, r26.xyzx, v8.wwww
  dp3 r10.x, r25.xyzx, r10.xyzx
  mul r10.xyz, r10.xxxx, r26.xyzx
  mad r10.xyz, v8.xyzx, r12.wwww, r10.xyzx
  dp3 r12.w, r25.xyzx, v3.xyzx
  mad r10.xyz, v7.xyzx, r12.wwww, r10.xyzx
  mul r25.xyz, r10.xzyx, l(1.000000, 1.000000, -1.000000, 0.000000)
  movc r10.xyz, r3.xxxx, r25.xyzx, r10.xyzx
  mov r15.x, v7.x
  add r25.xyz, |r15.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000)
  mul r26.xyz, r25.xyzx, r25.xyzx
  mul r26.xyz, r25.xyzx, r26.xyzx
  max r26.xyz, r26.xyzx, l(0.0000610351562, 0.0000610351562, 0.0000610351562, 0.000000)
  dp3 r12.w, r26.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  div r26.xyz, r26.xyzx, r12.wwww
  sample_b_indexable(texture2d)(float,float,float,float) r27.xyzw, r24.zyzz, t12.xyzw, s2, cb1[26].x
  sample_b_indexable(texture2d)(float,float,float,float) r28.xyzw, r24.zwzz, t12.xyzw, s2, cb1[26].x
  sample_b_indexable(texture2d)(float,float,float,float) r29.xyzw, r24.ywyy, t12.xyzw, s2, cb1[26].x
  mul r28.xyzw, r26.zzzz, r28.xyzw
  mad r27.xyzw, r27.xyzw, r26.yyyy, r28.xyzw
  mad r26.xyzw, r29.xyzw, r26.xxxx, r27.xyzw
  mad r16.yz, r26.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  add r12.w, -r3.w, l(1.000000)
  movc r17.zw, r10.wwww, r12.wwww, l(0,0,3.000000,4.340000)
  movc r3.w, r10.w, r3.w, r16.x
  add r3.w, -r3.w, l(1.000000)
  movc r12.w, r10.w, l(1.000000), cb1[20].x
  mul r27.xyz, r24.yzwy, l(32.000000, 32.000000, 32.000000, 0.000000)
  max r25.xyz, r25.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  mul r25.xyz, r25.xyzx, r25.xyzx
  mul r28.xyz, r25.xyzx, r25.xyzx
  mul r28.xyz, r28.xyzx, r28.xyzx
  mul r25.xyz, r25.xyzx, r28.xyzx
  dp3 r13.w, r25.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  max r13.w, r13.w, l(0.0000610351562)
  div r25.xyz, r25.xyzx, r13.wwww
  round_ni r28.xyzw, r27.yxyz
  mul r29.xyzw, r28.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991)
  frc r29.xyzw, r29.xyzw
  add r30.xyzw, r29.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001)
  dp2 r13.w, r29.xyxx, r30.xyxx
  add r26.xy, r13.wwww, r29.xyxx
  mul r13.w, r26.y, r26.x
  add r15.y, r26.y, r26.x
  frc r13.w, r13.w
  frc r15.y, r15.y
  add r31.xyzw, r28.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000)
  mul r31.xyzw, r31.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991)
  frc r31.xyzw, r31.xyzw
  add r32.xyzw, r31.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001)
  dp2 r18.w, r31.xyxx, r32.xyxx
  add r26.xy, r18.wwww, r31.xyxx
  mul r18.w, r26.y, r26.x
  add r19.w, r26.y, r26.x
  frc r26.x, r18.w
  frc r26.y, r19.w
  mad r18.w, r13.w, l(0.399999976), l(0.600000)
  mul r19.w, r18.w, l(0.250000)
  mad r28.xyzw, r24.zyzw, l(32.000000, 32.000000, 32.000000, 32.000000), -r28.xyzw
  mad r27.yw, r26.xxxy, l(0.000000, 2.000000, 0.000000, 2.000000), l(0.000000, -1.000000, 0.000000, -1.000000)
  mad r27.yw, r27.yyyw, l(0.000000, 0.250000, 0.000000, 0.250000), r28.xxxy
  add r27.yw, r27.yyyw, l(0.000000, -0.500000, 0.000000, -0.500000)
  dp2 r20.w, r10.xzxx, r10.xzxx
  ge r21.w, l(0.000010), r20.w
  rsq r20.w, r20.w
  mul r33.xy, r10.xzxx, r20.wwww
  mov r33.zw, -r33.yyyy
  dp2 r28.x, r27.wyww, r33.xzxx
  dp2 r20.w, r27.ywyy, r33.xyxx
  mov r28.y, -r20.w
  movc r27.yw, r21.wwww, r27.yyyw, r28.xxxy
  mul r28.x, r27.y, l(1.250000)
  lt r20.w, r27.w, l(0.000000)
  movc r20.w, r20.w, l(1.250000), l(0.750000)
  mul r28.y, r20.w, r27.w
  dp2 r20.w, r28.xyxx, r28.xyxx
  sqrt r20.w, r20.w
  mad r13.w, r12.w, r17.z, r13.w
  frc r22.w, r13.w
  mov_sat r13.w, r13.w
  mad r13.w, r13.w, l(0.630000), l(0.220000)
  movc r13.w, r10.w, r13.w, r22.w
  add r27.yw, r13.wwww, l(0.000000, -0.200000, 0.000000, -0.850000)
  mul_sat r27.yw, r27.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325)
  mad r29.xy, r27.ywyy, l(-2.000000, -2.000000, 0.000000, 0.000000), l(3.000000, 3.000000, 0.000000, 0.000000)
  mul r27.yw, r27.yyyw, r27.yyyw
  mul r27.yw, r27.yyyw, r29.xxxy
  mul r13.w, r27.w, r27.y
  mad r22.w, -r18.w, l(0.250000), r20.w
  div r23.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r19.w
  mul_sat r22.w, r22.w, r23.x
  mad r23.x, r22.w, l(-2.000000), l(3.000000)
  mul r22.w, r22.w, r22.w
  mul r22.w, r22.w, r23.x
  ge r22.w, r22.w, l(0.001000)
  and r22.w, r22.w, l(0x3f800000)
  mul r13.w, r13.w, r22.w
  add r22.w, r15.y, l(-0.100000)
  ge r22.w, r22.w, r3.w
  and r22.w, r22.w, l(0x3f800000)
  mul r13.w, r13.w, r22.w
  div r27.yw, r28.xxxy, r19.wwww
  max r27.yw, r27.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000)
  min r27.yw, r27.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000)
  mad r22.w, r26.x, l(0.250000), l(0.250000)
  mul r26.xy, r22.wwww, r27.ywyy
  mul r26.xy, r13.wwww, r26.xyxx
  mul r22.w, r25.y, r13.w
  dp2 r23.x, r29.zwzz, r30.zwzz
  add r27.yw, r23.xxxx, r29.zzzw
  mul r23.x, r27.w, r27.y
  add r25.w, r27.w, r27.y
  frc r23.x, r23.x
  frc r25.w, r25.w
  dp2 r27.y, r31.zwzz, r32.zwzz
  add r27.yw, r27.yyyy, r31.zzzw
  mul r28.x, r27.w, r27.y
  add r27.y, r27.w, r27.y
  frc r28.x, r28.x
  frc r28.y, r27.y
  mad r27.y, r23.x, l(0.399999976), l(0.600000)
  mul r27.w, r27.y, l(0.250000)
  mad r29.xy, r28.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
  mad r28.yz, r29.xxyx, l(0.000000, 0.250000, 0.250000, 0.000000), r28.zzwz
  add r28.yz, r28.yyzy, l(0.000000, -0.500000, -0.500000, 0.000000)
  dp2 r28.w, r10.xyxx, r10.xyxx
  ge r29.x, l(0.000010), r28.w
  rsq r28.w, r28.w
  mul r30.xy, r10.xyxx, r28.wwww
  mov r30.zw, -r30.yyyy
  dp2 r31.x, r28.zyzz, r30.xzxx
  dp2 r10.x, r28.yzyy, r30.xyxx
  mov r31.y, -r10.x
  movc r28.yz, r29.xxxx, r28.yyzy, r31.xxyx
  mul r31.x, r28.y, l(1.250000)
  lt r10.x, r28.z, l(0.000000)
  movc r10.x, r10.x, l(1.250000), l(0.750000)
  mul r31.y, r10.x, r28.z
  dp2 r10.x, r31.xyxx, r31.xyxx
  sqrt r10.x, r10.x
  mad r23.x, r12.w, r17.z, r23.x
  frc r28.y, r23.x
  mov_sat r23.x, r23.x
  mad r23.x, r23.x, l(0.630000), l(0.220000)
  movc r23.x, r10.w, r23.x, r28.y
  add r28.yz, r23.xxxx, l(0.000000, -0.200000, -0.850000, 0.000000)
  mul_sat r28.yz, r28.yyzy, l(0.000000, 50.000011, -3.33333325, 0.000000)
  mad r29.yz, r28.yyzy, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000)
  mul r28.yz, r28.yyzy, r28.yyzy
  mul r28.yz, r28.yyzy, r29.yyzy
  mul r23.x, r28.z, r28.y
  mad r28.y, -r27.y, l(0.250000), r10.x
  div r28.z, l(1.000000, 1.000000, 1.000000, 1.000000), -r27.w
  mul_sat r28.y, r28.z, r28.y
  mad r28.z, r28.y, l(-2.000000), l(3.000000)
  mul r28.y, r28.y, r28.y
  mul r28.y, r28.y, r28.z
  ge r28.y, r28.y, l(0.001000)
  and r28.y, r28.y, l(0x3f800000)
  mul r23.x, r23.x, r28.y
  add r28.y, r25.w, l(-0.100000)
  ge r28.y, r28.y, r3.w
  and r28.y, r28.y, l(0x3f800000)
  mul r23.x, r23.x, r28.y
  div r28.yz, r31.xxyx, r27.wwww
  max r28.yz, r28.yyzy, l(0.000000, -1.000000, -1.000000, 0.000000)
  min r28.yz, r28.yyzy, l(0.000000, 1.000000, 1.000000, 0.000000)
  mad r28.x, r28.x, l(0.250000), l(0.250000)
  mul r28.xy, r28.xxxx, r28.yzyy
  mul r28.xy, r23.xxxx, r28.xyxx
  mul r28.xy, r25.zzzz, r28.xyxx
  mul r28.z, r25.z, r23.x
  round_ni r27.xz, r27.xxzx
  mul r29.yz, r27.xxzx, l(0.000000, 123.339996, 456.209991, 0.000000)
  frc r29.yz, r29.yyzy
  add r31.xy, r29.yzyy, l(34.345001, 34.345001, 0.000000, 0.000000)
  dp2 r28.w, r29.yzyy, r31.xyxx
  add r29.yz, r28.wwww, r29.yyzy
  mul r28.w, r29.z, r29.y
  add r29.y, r29.z, r29.y
  frc r28.w, r28.w
  add r29.zw, r27.xxxz, l(0.000000, 0.000000, 114.514000, 114.514000)
  mul r29.zw, r29.zzzw, l(0.000000, 0.000000, 123.339996, 456.209991)
  frc r29.yzw, r29.yyzw
  add r31.xy, r29.zwzz, l(34.345001, 34.345001, 0.000000, 0.000000)
  dp2 r30.z, r29.zwzz, r31.xyxx
  add r29.zw, r29.zzzw, r30.zzzz
  mul r30.z, r29.w, r29.z
  add r29.z, r29.w, r29.z
  frc r31.x, r30.z
  frc r31.y, r29.z
  mad r29.z, r28.w, l(0.399999976), l(0.600000)
  mul r29.w, r29.z, l(0.250000)
  mad r27.xz, r24.yywy, l(32.000000, 0.000000, 32.000000, 0.000000), -r27.xxzx
  mad r31.yz, r31.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  mad r27.xz, r31.yyzy, l(0.250000, 0.000000, 0.250000, 0.000000), r27.xxzx
  add r27.xz, r27.xxzx, l(-0.500000, 0.000000, -0.500000, 0.000000)
  dp2 r30.z, r10.yzyy, r10.yzyy
  ge r31.y, l(0.000010), r30.z
  rsq r30.z, r30.z
  mul r32.xy, r10.zyzz, r30.zzzz
  mov r32.zw, -r32.yyyy
  dp2 r34.x, r27.zxzz, r32.xzxx
  dp2 r10.y, r27.xzxx, r32.xyxx
  mov r34.y, -r10.y
  movc r10.yz, r31.yyyy, r27.xxzx, r34.xxyx
  mul r34.x, r10.y, l(1.250000)
  lt r10.y, r10.z, l(0.000000)
  movc r10.y, r10.y, l(1.250000), l(0.750000)
  mul r34.y, r10.y, r10.z
  dp2 r10.y, r34.xyxx, r34.xyxx
  sqrt r10.y, r10.y
  mad r10.z, r12.w, r17.z, r28.w
  frc r17.z, r10.z
  mov_sat r10.z, r10.z
  mad r10.z, r10.z, l(0.630000), l(0.220000)
  movc r10.z, r10.w, r10.z, r17.z
  add r27.xz, r10.zzzz, l(-0.200000, 0.000000, -0.850000, 0.000000)
  mul_sat r27.xz, r27.xxzx, l(50.000011, 0.000000, -3.33333325, 0.000000)
  mad r31.zw, r27.xxxz, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000)
  mul r27.xz, r27.xxzx, r27.xxzx
  mul r27.xz, r27.xxzx, r31.zzwz
  mul r10.z, r27.z, r27.x
  mad r17.z, -r29.z, l(0.250000), r10.y
  div r27.x, l(1.000000, 1.000000, 1.000000, 1.000000), -r29.w
  mul_sat r17.z, r17.z, r27.x
  mad r27.x, r17.z, l(-2.000000), l(3.000000)
  mul r17.z, r17.z, r17.z
  mul r17.z, r17.z, r27.x
  ge r17.z, r17.z, l(0.001000)
  and r17.z, r17.z, l(0x3f800000)
  mul r10.z, r10.z, r17.z
  add r17.z, r29.y, l(-0.100000)
  ge r17.z, r17.z, r3.w
  and r17.z, r17.z, l(0x3f800000)
  mul r10.z, r10.z, r17.z
  div r27.xz, r34.xxyx, r29.wwww
  max r27.xz, r27.xxzx, l(-1.000000, 0.000000, -1.000000, 0.000000)
  min r27.xz, r27.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000)
  mad r17.z, r31.x, l(0.250000), l(0.250000)
  mul r27.xz, r17.zzzz, r27.xxzx
  mul r27.xz, r10.zzzz, r27.xxzx
  mul r17.z, r25.x, r10.z
  mul r34.x, r13.w, r19.w
  mad r34.y, r18.w, l(0.250000), -r20.w
  mul r31.xz, r25.yyyy, r34.xxyx
  mul r34.x, r23.x, r27.w
  mad r34.y, r27.y, l(0.250000), -r10.x
  mul r27.yw, r25.zzzz, r34.xxxy
  mul r34.x, r10.z, r29.w
  mad r34.y, r29.z, l(0.250000), -r10.y
  mul r10.xy, r25.xxxx, r34.xyxx
  max r10.xy, r10.xyxx, r27.ywyy
  max r10.xy, r10.xyxx, r31.xzxx
  max r10.z, r22.w, r28.z
  max r34.x, r10.z, r17.z
  mad r26.xy, r26.xyxx, r25.yyyy, r28.xyxx
  mad r26.xy, r27.xzxx, r25.xxxx, r26.xyxx
  lt r10.z, r10.z, r17.z
  lt r13.w, r22.w, r28.z
  movc r13.w, r13.w, r25.w, r15.y
  movc r34.y, r10.z, r29.y, r13.w
  mul r27.xyzw, r24.xyzw, l(64.400002, 64.400002, 64.400002, 64.400002)
  round_ni r27.xyzw, r27.xyzw
  mul r28.xyzw, r27.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991)
  frc r28.xyzw, r28.xyzw
  add r35.xyzw, r28.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001)
  dp2 r10.z, r28.xyxx, r35.xyxx
  add r28.xy, r10.zzzz, r28.xyxx
  mul r10.z, r28.y, r28.x
  add r13.w, r28.y, r28.x
  frc r10.z, r10.z
  frc r13.w, r13.w
  add r36.xyzw, r27.xyzw, l(114.514000, 114.514000, 114.514000, 114.514000)
  mul r36.xyzw, r36.xyzw, l(123.339996, 456.209991, 123.339996, 456.209991)
  frc r36.xyzw, r36.xyzw
  add r37.xyzw, r36.xyzw, l(34.345001, 34.345001, 34.345001, 34.345001)
  dp2 r15.y, r36.xyxx, r37.xyxx
  add r28.xy, r15.yyyy, r36.xyxx
  mul r15.y, r28.y, r28.x
  add r17.z, r28.y, r28.x
  frc r28.x, r15.y
  frc r28.y, r17.z
  mad r15.y, r10.z, l(0.399999976), l(0.600000)
  mul r17.z, r15.y, l(0.350000)
  mad r27.xyzw, r24.xyzw, l(64.400002, 64.400002, 64.400002, 64.400002), -r27.xyzw
  mad r29.yz, r28.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  mad r27.xy, r29.yzyy, l(0.178571433, 0.178571433, 0.000000, 0.000000), r27.xyxx
  add r27.xy, r27.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
  dp2 r35.x, r27.yxyy, r33.xwxx
  dp2 r18.w, r27.xyxx, r33.xyxx
  mov r35.y, -r18.w
  movc r27.xy, r21.wwww, r27.xyxx, r35.xyxx
  mul r33.x, r27.x, l(1.250000)
  lt r18.w, r27.y, l(0.000000)
  movc r18.w, r18.w, l(1.250000), l(0.750000)
  mul r33.y, r18.w, r27.y
  dp2 r18.w, r33.xyxx, r33.xyxx
  sqrt r18.w, r18.w
  mad r10.z, r12.w, r17.w, r10.z
  frc r19.w, r10.z
  mov_sat r10.z, r10.z
  mad r10.z, r10.z, l(0.630000), l(0.220000)
  movc r10.z, r10.w, r10.z, r19.w
  add r27.xy, r10.zzzz, l(-0.200000, -0.850000, 0.000000, 0.000000)
  mul_sat r27.xy, r27.xyxx, l(50.000011, -3.33333325, 0.000000, 0.000000)
  mad r29.yz, r27.xxyx, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000)
  mul r27.xy, r27.xyxx, r27.xyxx
  mul r27.xy, r27.xyxx, r29.yzyy
  mul r10.z, r27.y, r27.x
  mad r19.w, -r15.y, l(0.350000), r18.w
  div r20.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r17.z
  mul_sat r19.w, r19.w, r20.w
  mad r20.w, r19.w, l(-2.000000), l(3.000000)
  mul r19.w, r19.w, r19.w
  mul r19.w, r19.w, r20.w
  ge r19.w, r19.w, l(0.001000)
  and r19.w, r19.w, l(0x3f800000)
  mul r10.z, r10.z, r19.w
  add r19.w, r13.w, l(-0.100000)
  ge r19.w, r19.w, r3.w
  and r19.w, r19.w, l(0x3f800000)
  mul r10.z, r10.z, r19.w
  div r27.xy, r33.xyxx, r17.zzzz
  max r27.xy, r27.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  min r27.xy, r27.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
  mad r19.w, r28.x, l(0.250000), l(0.250000)
  mul r27.xy, r19.wwww, r27.xyxx
  mul r27.xy, r10.zzzz, r27.xyxx
  mul r19.w, r25.y, r10.z
  dp2 r20.w, r28.zwzz, r35.zwzz
  add r28.xy, r20.wwww, r28.zwzz
  mul r20.w, r28.y, r28.x
  add r21.w, r28.y, r28.x
  frc r20.w, r20.w
  frc r21.w, r21.w
  dp2 r22.w, r36.zwzz, r37.zwzz
  add r28.xy, r22.wwww, r36.zwzz
  mul r22.w, r28.y, r28.x
  add r23.x, r28.y, r28.x
  frc r28.x, r22.w
  frc r28.y, r23.x
  mad r22.w, r20.w, l(0.399999976), l(0.600000)
  mul r23.x, r22.w, l(0.350000)
  mad r28.yz, r28.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  mad r27.zw, r28.yyyz, l(0.000000, 0.000000, 0.178571433, 0.178571433), r27.zzzw
  add r27.zw, r27.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
  dp2 r33.x, r27.wzww, r30.xwxx
  dp2 r24.x, r27.zwzz, r30.xyxx
  mov r33.y, -r24.x
  movc r27.zw, r29.xxxx, r27.zzzw, r33.xxxy
  mul r29.x, r27.z, l(1.250000)
  lt r24.x, r27.w, l(0.000000)
  movc r24.x, r24.x, l(1.250000), l(0.750000)
  mul r29.y, r24.x, r27.w
  dp2 r24.x, r29.xyxx, r29.xyxx
  sqrt r24.x, r24.x
  mad r20.w, r12.w, r17.w, r20.w
  frc r25.w, r20.w
  mov_sat r20.w, r20.w
  mad r20.w, r20.w, l(0.630000), l(0.220000)
  movc r20.w, r10.w, r20.w, r25.w
  add r27.zw, r20.wwww, l(0.000000, 0.000000, -0.200000, -0.850000)
  mul_sat r27.zw, r27.zzzw, l(0.000000, 0.000000, 50.000011, -3.33333325)
  mad r28.yz, r27.zzwz, l(0.000000, -2.000000, -2.000000, 0.000000), l(0.000000, 3.000000, 3.000000, 0.000000)
  mul r27.zw, r27.zzzw, r27.zzzw
  mul r27.zw, r27.zzzw, r28.yyyz
  mul r20.w, r27.w, r27.z
  mad r25.w, -r22.w, l(0.350000), r24.x
  div r27.z, l(1.000000, 1.000000, 1.000000, 1.000000), -r23.x
  mul_sat r25.w, r25.w, r27.z
  mad r27.z, r25.w, l(-2.000000), l(3.000000)
  mul r25.w, r25.w, r25.w
  mul r25.w, r25.w, r27.z
  ge r25.w, r25.w, l(0.001000)
  and r25.w, r25.w, l(0x3f800000)
  mul r20.w, r20.w, r25.w
  add r25.w, r21.w, l(-0.100000)
  ge r25.w, r25.w, r3.w
  and r25.w, r25.w, l(0x3f800000)
  mul r20.w, r20.w, r25.w
  div r27.zw, r29.xxxy, r23.xxxx
  max r27.zw, r27.zzzw, l(0.000000, 0.000000, -1.000000, -1.000000)
  min r27.zw, r27.zzzw, l(0.000000, 0.000000, 1.000000, 1.000000)
  mad r25.w, r28.x, l(0.250000), l(0.250000)
  mul r27.zw, r25.wwww, r27.zzzw
  mul r27.zw, r20.wwww, r27.zzzw
  mul r27.zw, r25.zzzz, r27.zzzw
  mul r25.w, r25.z, r20.w
  mul r28.xy, r24.ywyy, l(64.400002, 64.400002, 0.000000, 0.000000)
  round_ni r28.xy, r28.xyxx
  mul r28.zw, r28.xxxy, l(0.000000, 0.000000, 123.339996, 456.209991)
  frc r28.zw, r28.zzzw
  add r29.xy, r28.zwzz, l(34.345001, 34.345001, 0.000000, 0.000000)
  dp2 r29.x, r28.zwzz, r29.xyxx
  add r28.zw, r28.zzzw, r29.xxxx
  mul r29.x, r28.w, r28.z
  add r28.z, r28.w, r28.z
  frc r28.w, r29.x
  frc r28.z, r28.z
  add r29.xy, r28.xyxx, l(114.514000, 114.514000, 0.000000, 0.000000)
  mul r29.xy, r29.xyxx, l(123.339996, 456.209991, 0.000000, 0.000000)
  frc r29.xy, r29.xyxx
  add r29.zw, r29.xxxy, l(0.000000, 0.000000, 34.345001, 34.345001)
  dp2 r29.z, r29.xyxx, r29.zwzz
  add r29.xy, r29.zzzz, r29.xyxx
  mul r29.z, r29.y, r29.x
  add r29.x, r29.y, r29.x
  frc r30.xy, r29.zxzz
  mad r29.x, r28.w, l(0.399999976), l(0.600000)
  mul r29.y, r29.x, l(0.350000)
  mad r28.xy, r24.ywyy, l(64.400002, 64.400002, 0.000000, 0.000000), -r28.xyxx
  mad r29.zw, r30.xxxy, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
  mad r28.xy, r29.zwzz, l(0.178571433, 0.178571433, 0.000000, 0.000000), r28.xyxx
  add r28.xy, r28.xyxx, l(-0.500000, -0.500000, 0.000000, 0.000000)
  dp2 r33.x, r28.yxyy, r32.xwxx
  dp2 r29.z, r28.xyxx, r32.xyxx
  mov r33.y, -r29.z
  movc r28.xy, r31.yyyy, r28.xyxx, r33.xyxx
  mul r31.x, r28.x, l(1.250000)
  lt r28.x, r28.y, l(0.000000)
  movc r28.x, r28.x, l(1.250000), l(0.750000)
  mul r31.y, r28.x, r28.y
  dp2 r28.x, r31.xyxx, r31.xyxx
  sqrt r28.x, r28.x
  mad r12.w, r12.w, r17.w, r28.w
  frc r17.w, r12.w
  mov_sat r12.w, r12.w
  mad r12.w, r12.w, l(0.630000), l(0.220000)
  movc r10.w, r10.w, r12.w, r17.w
  add r28.yw, r10.wwww, l(0.000000, -0.200000, 0.000000, -0.850000)
  mul_sat r28.yw, r28.yyyw, l(0.000000, 50.000011, 0.000000, -3.33333325)
  mad r29.zw, r28.yyyw, l(0.000000, 0.000000, -2.000000, -2.000000), l(0.000000, 0.000000, 3.000000, 3.000000)
  mul r28.yw, r28.yyyw, r28.yyyw
  mul r28.yw, r28.yyyw, r29.zzzw
  mul r10.w, r28.w, r28.y
  mad r12.w, -r29.x, l(0.350000), r28.x
  div r17.w, l(1.000000, 1.000000, 1.000000, 1.000000), -r29.y
  mul_sat r12.w, r12.w, r17.w
  mad r17.w, r12.w, l(-2.000000), l(3.000000)
  mul r12.w, r12.w, r12.w
  mul r12.w, r12.w, r17.w
  ge r12.w, r12.w, l(0.001000)
  and r12.w, r12.w, l(0x3f800000)
  mul r10.w, r10.w, r12.w
  add r12.w, r28.z, l(-0.100000)
  ge r3.w, r12.w, r3.w
  and r3.w, r3.w, l(0x3f800000)
  mul r3.w, r3.w, r10.w
  div r28.yw, r31.xxxy, r29.yyyy
  max r28.yw, r28.yyyw, l(0.000000, -1.000000, 0.000000, -1.000000)
  min r28.yw, r28.yyyw, l(0.000000, 1.000000, 0.000000, 1.000000)
  mad r10.w, r30.x, l(0.250000), l(0.250000)
  mul r28.yw, r10.wwww, r28.yyyw
  mul r28.yw, r3.wwww, r28.yyyw
  mul r10.w, r25.x, r3.w
  max r12.w, r19.w, r25.w
  mad r27.xy, r27.xyxx, r25.yyyy, r27.zwzz
  mad r27.xy, r28.ywyy, r25.xxxx, r27.xyxx
  max r30.x, r10.w, r12.w
  lt r10.w, r12.w, r10.w
  lt r12.w, r19.w, r25.w
  movc r12.w, r12.w, r21.w, r13.w
  movc r30.y, r10.w, r28.z, r12.w
  ge r10.w, l(0.010000), r10.x
  and r31.x, r10.w, l(0x3f800000)
  ge r10.w, r34.x, l(0.010000)
  and r10.w, r10.w, l(0x3f800000)
  mul r27.zw, r10.wwww, r34.xxxy
  mul r28.yz, r30.xxyx, r31.xxxx
  max r27.zw, r27.zzzw, r28.yyyz
  mul r30.x, r10.z, r17.z
  mad r30.y, r15.y, l(0.350000), -r18.w
  mul r10.zw, r25.yyyy, r30.xxxy
  mul r10.zw, r10.zzzw, l(0.000000, 0.000000, 0.714285731, 0.714285731)
  mul r30.x, r20.w, r23.x
  mad r30.y, r22.w, l(0.350000), -r24.x
  mul r17.zw, r25.zzzz, r30.xxxy
  mul r17.zw, r17.zzzw, l(0.000000, 0.000000, 0.714285731, 0.714285731)
  mul r30.x, r3.w, r29.y
  mad r30.y, r29.x, l(0.350000), -r28.x
  mul r25.xy, r25.xxxx, r30.xyxx
  mul r25.xy, r25.xyxx, l(0.714285731, 0.714285731, 0.000000, 0.000000)
  max r17.zw, r17.zzzw, r25.xxxy
  max r10.zw, r10.zzzw, r17.zzzw
  mov r31.yz, l(0,1.000000,0.695652187,0)
  mul r10.zw, r10.zzzw, r31.xxxy
  mul r10.zw, r31.zzzx, r10.zzzw
  max r10.xy, r10.zwzz, r10.xyxx
  mad r10.zw, r27.xxxy, r31.xxxx, r26.xxxy
  add r3.w, r4.z, r4.z
  min r3.w, r3.w, l(1.000000)
  mul r12.w, cb1[20].x, cb1[117].z
  mul r25.y, r12.w, l(0.750000)
  dp2 r12.w, r15.xzxx, r15.xzxx
  max r12.w, r12.w, l(1.175494351E-38)
  rsq r12.w, r12.w
  mul r28.x, r12.w, v7.x
  mov r28.y, l(0)
  mul r28.z, r12.w, r15.z
  add r15.xyz, |r28.xyzx|, l(-0.200000, -0.200000, -0.200000, 0.000000)
  mul r28.xyz, r15.xyzx, r15.xyzx
  mul r15.xyz, r15.xyzx, r28.xyzx
  max r15.xyz, r15.xyzx, l(0.0000610351562, 0.0000610351562, 0.0000610351562, 0.000000)
  dp3 r12.w, r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  div r15.xy, r15.xzxx, r12.wwww
  sample_b_indexable(texture2d)(float,float,float,float) r28.xyz, r24.zwzz, t13.xyzw, s2, cb1[26].x
  sample_b_indexable(texture2d)(float,float,float,float) r24.xyz, r24.ywyy, t13.xyzw, s2, cb1[26].x
  mul r24.xyz, r15.xxxx, r24.xyzx
  mad r24.xyz, r28.xyzx, r15.yyyy, r24.xyzx
  mul r28.xy, r10.zwzz, l(2.500000, 2.500000, 0.000000, 0.000000)
  dp2 r10.z, r10.zwzz, r10.zwzz
  min r10.z, r10.z, l(1.000000)
  add r10.z, -r10.z, l(1.000000)
  sqrt r10.z, r10.z
  max r28.z, r10.z, l(1.000000017E-16)
  dp3 r10.z, r28.xyzx, r28.xyzx
  rsq r10.z, r10.z
  mad r10.zw, r28.xxxy, r10.zzzz, r16.yyyz
  mad r16.yz, r24.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
  mov r25.x, l(0)
  mad r23.xyzw, r23.zwyw, cb1[117].zzzz, r25.xyxy
  sample_b_indexable(texture2d)(float,float,float,float) r12.w, r23.xyxx, t13.xyzw, s2, cb1[26].x
  sample_b_indexable(texture2d)(float,float,float,float) r13.w, r23.zwzz, t13.xyzw, s2, cb1[26].x
  mul r13.w, r15.x, r13.w
  mad r12.w, r12.w, r15.y, r13.w
  mul r15.xy, r12.wwww, r16.yzyy
  mad r15.xy, r15.xyxx, r3.wwww, r10.zwzz
  add r10.z, -r24.z, l(1.000000)
  add r10.w, r17.y, l(-1.000000)
  mul r10.xyw, r10.yxyw, l(17.540001, 4.000000, 0.000000, -5.00000048)
  min r10.w, r10.w, l(1.000000)
  mad r12.w, r10.w, l(-2.000000), l(3.000000)
  mul r10.w, r10.w, r10.w
  mad r10.z, r12.w, r10.w, -r10.z
  mul_sat r10.z, r10.z, l(9.999998)
  mad r10.w, r10.z, l(-2.000000), l(3.000000)
  mul r10.z, r10.z, r10.z
  mul r10.z, r10.z, r10.w
  mul r3.w, r3.w, r10.z
  dp2 r10.z, r15.xyxx, r15.xyxx
  min r10.z, r10.z, l(1.000000)
  add r10.z, -r10.z, l(1.000000)
  sqrt r10.z, r10.z
  max r15.z, r10.z, l(1.000000017E-16)
  dp3 r10.z, r15.xyzx, r15.xyzx
  rsq r10.z, r10.z
  mul r15.xyz, r10.zzzz, r15.xyzx
  mul r10.zw, r12.zzzy, l(0.000000, 0.000000, 1.000000, 0.000000)
  mad r10.zw, r12.yyyx, l(0.000000, 0.000000, 0.000000, 1.000000), -r10.zzzw
  dp2 r12.w, r10.zwzz, r10.zwzz
  lt r13.w, l(0.0000610351562), r12.w
  rsq r12.w, r12.w
  mul r10.zw, r10.zzzw, r12.wwww
  movc r23.y, r13.w, r10.z, l(1.000000)
  and r23.x, r10.w, r13.w
  mov r23.z, l(0)
  mul r24.xyz, r12.yzxy, r23.xyzx
  mad r24.xyz, r23.zxyz, r12.zxyz, -r24.xyzx
  mul r24.xyz, r15.yyyy, r24.xyzx
  mad r23.xyz, r23.yzxy, r15.xxxx, r24.xyzx
  mad r23.xyz, r12.xyzx, r15.zzzz, r23.xyzx
  dp3 r10.z, r23.xyzx, r23.xyzx
  rsq r10.z, r10.z
  mul r24.xyz, r10.zzzz, r23.xzyx
  ge r10.w, r27.w, l(0.550000)
  and r12.w, r10.w, l(0x3f800000)
  movc r10.w, r10.w, l(0), l(1.000000)
  mul r10.w, r10.w, r27.z
  mul r10.w, r5.w, r10.w
  mad r13.w, -r17.y, l(0.500000), l(1.000000)
  mad r4.z, -r13.w, r4.z, l(1.010000)
  ge r4.z, r26.z, r4.z
  and r4.z, r4.z, l(0x3f800000)
  max r4.z, r3.w, r4.z
  mul r12.w, r12.w, r27.z
  max r4.z, r4.z, r12.w
  mul r4.z, r5.w, r4.z
  add r16.yz, -r26.wwww, l(0.000000, 0.800000, 0.450000, 0.000000)
  mul_sat r5.w, r16.x, cb6[19].y
  add r5.w, -r16.y, r5.w
  mul_sat r5.w, r5.w, l(3.33333325)
  mad r12.w, r5.w, l(-2.000000), l(3.000000)
  mul r5.w, r5.w, r5.w
  mul r5.w, r5.w, r12.w
  min r2.w, r2.w, l(1.000000)
  add r2.w, -r16.z, r2.w
  mul_sat r2.w, r2.w, l(1.53846145)
  mad r12.w, r2.w, l(-2.000000), l(3.000000)
  mul r2.w, r2.w, r2.w
  mul r2.w, r2.w, r12.w
  max r2.w, r2.w, r5.w
  mad r2.w, r2.w, -|cb6[20].y|, l(1.000000)
  lt r5.w, l(0.000000), cb6[20].y
  mul r16.xyz, r2.wwww, r20.xyzx
  mad r5.xyz, -r5.xyzx, cb6[6].xyzx, r20.xyzx
  mad r5.xyz, r2.wwww, r5.xyzx, r7.xyzx
  mul r7.xyz, r2.wwww, r19.xyzx
  add r25.xyz, -r8.xyzx, r19.xyzx
  mad r8.xyz, r2.wwww, r25.xyzx, r8.xyzx
  dp2_sat r2.w, r15.yzyy, l(-0.800000, 0.600000, 0.000000, 0.000000)
  mul r12.w, r10.w, r10.y
  mul r13.w, r12.w, l(0.600000)
  mad r15.x, -r12.w, l(0.600000), l(1.000000)
  mov_sat r10.x, r10.x
  mul_sat r15.y, r15.y, l(1.600000)
  add r10.x, r10.x, r15.y
  min r10.x, r10.x, l(1.000000)
  mad r10.x, r10.x, r13.w, r15.x
  movc r5.xyz, r5.wwww, r16.xyzx, r5.xyzx
  mul r20.xyz, r10.xxxx, r5.xyzx
  add r5.x, r10.x, l(-0.600000)
  mul_sat r5.x, r5.x, l(2.50000024)
  mad r5.y, r5.x, l(-2.000000), l(3.000000)
  mul r5.x, r5.x, r5.x
  mul r5.x, r5.x, r5.y
  min r5.y, r3.y, l(0.050000)
  mad r15.xyz, r23.xyzx, r10.zzzz, -r12.xyzx
  mad r16.xyz, r4.zzzz, r15.xyzx, r12.xyzx
  dp3 r5.z, r16.xyzx, r16.xyzx
  rsq r5.z, r5.z
  mul r16.xyz, r5.zzzz, r16.xyzx
  ge r5.z, l(0.010000), r27.z
  and r5.z, r5.z, l(0x3f800000)
  mul r5.z, r4.z, r5.z
  mad r15.xyz, r5.zzzz, r15.xyzx, r12.xyzx
  dp3 r5.z, r15.xyzx, r15.xyzx
  rsq r5.z, r5.z
  mul r15.xyz, r5.zzzz, r15.xyzx
  add r5.y, -r3.y, r5.y
  mad r3.w, r3.w, r5.y, r3.y
  mul r5.z, r2.w, r2.w
  mul r2.w, r2.w, r5.z
  mad r2.w, r2.w, l(1.750000), l(0.050000)
  mul r2.w, r10.y, r2.w
  mul r2.w, r5.x, r2.w
  mul r2.w, r10.w, r2.w
  dp3_sat r5.z, r20.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
  mad r5.z, r5.z, l(-0.700000), l(1.000000)
  mul r2.w, r2.w, r5.z
  mad r5.x, r5.x, l(0.500000), l(0.500000)
  mad r5.x, r5.x, l(0.800000), l(-1.000000)
  mad r5.x, r10.w, r5.x, l(1.000000)
  max r5.z, r4.z, r27.z
  mad r3.y, r4.z, r5.y, r3.y
  movc r7.xyz, r5.wwww, r7.xyzx, r8.xyzx
  mul r19.xyz, r10.xxxx, r7.xyzx
  mov r7.y, r24.x
  mov r24.xy, r24.zyzz
  mov r4.z, l(1.000000)
else
  mov r16.xyz, r12.xyzx
  mov r15.xyz, r12.xyzx
  mov r7.y, r12.x
  mov r24.xy, r12.yzyy
  mov r4.z, l(0)
  mov r3.w, l(0.010000)
  mov r12.w, l(0)
  mov r2.w, l(0)
  mov r5.xz, l(1.000000,0,0,0)
endif
lt r5.y, l(2.54999971), r15.w
if_nz r5.y
  mul r8.xyz, v9.xzyx, l(1.000000, 1.000000, -1.000000, 0.000000)
  movc r8.xyz, r3.xxxx, r8.xyzx, v9.xyzx
  mul r10.xyz, r8.xyzx, cb1[117].zzzz
  movc r23.yz, r3.xxxx, v7.zzyz, v7.yyzy
  mov r23.x, v7.x
  add r23.xzw, |r23.xxyz|, l(-0.200000, 0.000000, -0.200000, -0.200000)
  mul r25.xyz, r23.xzwx, r23.xzwx
  mul r23.xzw, r23.xxzw, r25.xxyz
  max r23.xzw, r23.xxzw, l(0.0000610351562, 0.000000, 0.0000610351562, 0.0000610351562)
  dp3 r3.x, r23.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000)
  div r23.xzw, r23.xxzw, r3.xxxx
  sample_b_indexable(texture2d)(float,float,float,float) r25.xyzw, r10.xzxx, t14.xyzw, s2, cb1[26].x
  sample_b_indexable(texture2d)(float,float,float,float) r26.xyzw, r10.xyxx, t14.xyzw, s2, cb1[26].x
  mul r26.xyzw, r23.wwww, r26.xyzw
  mad r25.xyzw, r25.xyzw, r23.zzzz, r26.xyzw
  sample_b_indexable(texture2d)(float,float,float,float) r26.xyzw, r10.zyzz, t14.xyzw, s2, cb1[26].x
  mad r25.xyzw, r26.xyzw, r23.xxxx, r25.xyzw
  add r3.x, r8.y, l(-0.350000)
  mul_sat r3.x, r3.x, l(-6.666667)
  mad r5.y, r3.x, l(-2.000000), l(3.000000)
  mul r3.x, r3.x, r3.x
  mul r3.x, r3.x, r5.y
  mul r5.y, r15.w, l(0.0117647070)
  min r5.y, r5.y, l(1.000000)
  mad r3.x, r3.x, r5.y, r16.w
  min r3.x, r3.x, l(1.000000)
  add r5.y, -r3.x, l(2.000000)
  mad r5.w, r23.y, l(0.650000), r25.z
  add r5.w, r5.w, l(0.350000)
  add r5.y, -r5.y, r5.w
  mul_sat r5.y, r5.y, l(2.85714364)
  mad r5.w, r5.y, l(-2.000000), l(3.000000)
  mul r5.y, r5.y, r5.y
  mul r5.y, r5.y, r5.w
  mul r5.w, r6.z, r6.z
  and r8.x, v11.x, l(0x3f800000)
  mul r5.w, r5.w, r8.x
  mul r5.y, r5.w, r5.y
  add r5.w, -r6.x, l(1.000000)
  mul r8.xyz, r5.wwww, r20.xyzx
  dp3 r5.w, r8.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
  add r5.w, r5.w, l(-0.350000)
  mul_sat r5.w, r5.w, l(-4.000000)
  mad r8.x, r5.w, l(-2.000000), l(3.000000)
  mul r5.w, r5.w, r5.w
  mad r5.w, -r8.x, r5.w, l(1.000000)
  mul r3.x, r3.x, r5.w
  mul r3.x, r25.w, r3.x
  mad r5.w, r23.y, l(0.250000), l(0.750000)
  mul r3.x, r3.x, r5.w
  mad r3.x, r3.x, l(-0.500000), l(1.000000)
  mad r8.xy, r25.xyxx, l(2.000000, 2.000000, 0.000000, 0.000000), l(-1.000000, -1.000000, 0.000000, 0.000000)
  dp2 r5.w, r8.xyxx, r8.xyxx
  min r5.w, r5.w, l(1.000000)
  add r5.w, -r5.w, l(1.000000)
  sqrt r5.w, r5.w
  max r25.z, r5.w, l(1.000000017E-16)
  add r25.xy, r8.xyxx, r8.xyxx
  add r8.xyz, r25.xyzx, l(-0.000000, -0.000000, -1.000000, 0.000000)
  mad r8.xyz, r5.yyyy, r8.xyzx, l(0.000000, 0.000000, 1.000000, 0.000000)
  dp3 r5.w, r8.xyzx, r8.xyzx
  max r5.w, r5.w, l(0.0000610351562)
  rsq r5.w, r5.w
  mul r8.xyz, r5.wwww, r8.xyzx
  mad r5.w, -r12.y, r12.y, l(1.000000)
  ge r5.w, r5.w, l(0.010000)
  and r25.y, r5.w, l(0x3f800000)
  mad r3.z, r11.y, r3.z, -r12.z
  mad r3.z, r25.y, r3.z, r12.z
  movc r25.z, r5.w, l(0), l(1.000000)
  mov r25.x, l(0)
  mad r25.xyz, -r12.xyzx, r3.zzzz, r25.xyzx
  mad r3.z, -r3.z, r3.z, l(1.000000)
  max r3.z, r3.z, l(0.000100)
  rsq r3.z, r3.z
  mul r25.xyz, r3.zzzz, r25.xyzx
  mul r10.xyz, r10.xyzx, l(4.000000, 4.000000, 4.000000, 0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r26.xyz, r10.xzxx, t15.xyzw, s0, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r27.xyz, r10.xyxx, t15.xyzw, s0, l(0.000000)
  mul r27.xyz, r23.wwww, r27.xyzx
  mad r23.yzw, r26.xxyz, r23.zzzz, r27.xxyz
  sample_l_indexable(texture2d)(float,float,float,float) r10.xyz, r10.zyzz, t15.xyzw, s0, l(0.000000)
  mad r10.xyz, r10.xyzx, r23.xxxx, r23.yzwy
  mul r23.xyz, r2.xyzx, l(50.000000, 50.000000, 50.000000, 0.000000)
  round_ni r23.xyz, r23.xyzx
  mul r23.xyz, r23.xyzx, l(0.002000, 0.002000, 0.002000, 0.000000)
  mad r10.xyz, r10.xyzx, l(2.000000, 1.000000, 2.000000, 0.000000), l(-1.000000, 0.000000, -1.000000, 0.000000)
  dp3 r3.z, r10.xyzx, r23.xyzx
  mad r3.z, r3.z, l(0.500000), l(0.500000)
  add r3.z, r3.z, r3.z
  frc r3.z, r3.z
  add r3.z, r3.z, l(-0.950000)
  mul r3.z, r3.z, l(19.999996)
  max r3.z, r3.z, l(0.000000)
  mad r5.w, r3.z, l(-2.000000), l(3.000000)
  mul r3.z, r3.z, r3.z
  mul r3.z, r3.z, r5.w
  mul r3.z, r3.z, r3.z
  mul r3.z, r3.z, r3.z
  mul r5.w, r5.y, r3.z
  add r10.x, r5.w, r5.w
  mul r10.yzw, r12.yyzx, r25.zzxy
  mad r10.yzw, r25.yyzx, r12.zzxy, -r10.yyzw
  mul r23.xyz, r8.yyyy, r25.xyzx
  mad r10.yzw, r10.yyzw, r8.xxxx, r23.xxyz
  mad r8.xyz, r12.xyzx, r8.zzzz, r10.yzwy
  mad r5.z, r5.w, l(2.000000), r5.z
  mul r10.y, r5.y, l(4.000000)
  min r10.y, r10.y, l(1.000000)
  add r10.z, -r3.y, l(0.900000)
  mad r10.y, r10.y, r10.z, r3.y
  add r10.z, -r10.y, l(0.010000)
  mad r3.y, r10.x, r10.z, r10.y
  mul r10.xyz, r3.xxxx, r19.xyzx
  mad r23.xyz, -r19.xyzx, r3.xxxx, l(0.308000, 0.308000, 0.308000, 0.000000)
  mad r10.xyz, r5.yyyy, r23.xyzx, r10.xyzx
  mad r19.xyz, r3.zzzz, r5.yyyy, r10.xyzx
  mul r10.xyz, r3.xxxx, r20.xyzx
  mad r23.xyz, -r20.xyzx, r3.xxxx, l(0.880000, 0.880000, 0.880000, 0.000000)
  mad r10.xyz, r5.yyyy, r23.xyzx, r10.xyzx
  mad r20.xyz, r5.wwww, l(2.000000, 2.000000, 2.000000, 0.000000), r10.xyzx
  mad r6.x, r5.y, -r6.x, r6.x
else
  mov r8.xyz, r12.xyzx
endif
mad r3.x, -r6.x, l(0.960000), l(0.960000)
mul r10.xyz, r3.xxxx, r20.xyzx
mul r3.z, r6.y, l(0.040000)
mad r23.xyz, -r6.yyyy, l(0.040000, 0.040000, 0.040000, 0.000000), r20.xyzx
mad r23.xyz, r6.xxxx, r23.xyzx, r3.zzzz
mul r19.xyz, r3.xxxx, r19.xyzx
mul r3.z, r3.y, r3.y
max r3.z, r3.z, l(0.00781250000)
mul_sat r5.y, r17.y, cb6[18].y
add r5.y, -r5.y, l(1.000000)
mad r5.w, -r17.x, r5.y, l(1.000000)
mad r5.y, r17.x, r5.y, l(1.000000)
mul r5.yw, r3.zzzz, r5.yyyw
max r6.y, v5.z, l(9.999999939E-09)
div r17.xy, v5.xyxx, r6.yyyy
max r6.y, v6.z, l(9.999999939E-09)
div r17.zw, v6.xxxy, r6.yyyy
add r17.xy, -r17.zwzz, r17.xyxx
mul r25.xy, r17.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000)
sqrt r25.xy, |r25.xyxx|
sqrt r25.xy, r25.xyxx
mov r17.z, -r17.y
lt r17.yw, l(0.000000, 0.000000, 0.000000, 0.000000), r17.xxxz
lt r17.xz, r17.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000)
iadd r17.xy, -r17.ywyy, r17.xzxx
itof r17.xy, r17.xyxx
mul r17.xy, r17.xyxx, r25.xyxx
mad o1.xy, r17.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
lt r5.z, l(0.100000), r5.z
movc o1.w, r5.z, l(0.700000), l(0.400000)
add r17.xyz, cb1[118].xyzx, cb4[0].xyzx
mad r17.xyz, cb1[108].wwww, r17.xyzx, -cb4[0].xyzx
mov r17.w, l(0.0000610351562)
dp3 r5.z, r17.xzwx, r17.xzwx
rsq r5.z, r5.z
mul r25.xyz, r5.zzzz, r17.xwzx
add r26.xyz, cb1[112].xyzx, -cb4[3].xyzx
mad r26.xyz, cb1[119].yyyy, r26.xyzx, cb4[3].xyzx
add r5.z, l(1.000000), -cb4[3].w
mad r5.z, cb1[119].w, r5.z, cb4[3].w
mul r27.xyz, r5.zzzz, r26.xyzx
mov r14.z, l(0)
ld_indexable(texture2d)(float,float,float,float) r28.xy, r14.xyzz, t3.xyzw
add r6.y, r28.x, l(-1.000000)
mad r6.y, cb5[34].x, r6.y, l(1.000000)
add r10.w, -r6.y, l(1.000000)
mad r6.y, cb1[108].z, r10.w, r6.y
dp3 r10.w, r8.xyzx, r17.xyzx
mul r28.xzw, r19.xxyz, cb1[107].zzzz
mul r29.xyz, r28.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000)
dp3 r11.y, r10.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
dp2 r13.w, cb0[6].xzxx, cb0[6].xzxx
rsq r13.w, r13.w
mul r30.xy, r13.wwww, cb0[6].xzxx
dp2 r13.w, r25.xzxx, r30.xyxx
mov_sat r13.w, -r13.w
add r30.xy, l(1.000000, 1.000000, 0.000000, 0.000000), -cb1[119].xyxx
mad r14.z, r10.w, l(0.500000), l(-1.000000)
mad r14.z, -r10.w, r14.z, -r10.w
add r15.w, l(0.750000), -|cb0[6].y|
add_sat r15.w, r15.w, r15.w
mad r16.w, r15.w, l(-2.000000), l(3.000000)
mul r15.w, r15.w, r15.w
mul r15.w, r15.w, r16.w
mul r15.w, r13.w, r15.w
mul r15.w, r30.x, r15.w
add r14.z, r14.z, l(0.500000)
mad r10.w, r15.w, r14.z, r10.w
mad r10.w, cb1[118].w, cb1[119].x, r10.w
max r10.w, r10.w, l(-1.000000)
min r10.w, r10.w, l(1.000000)
mad r31.x, r10.w, l(0.500000), l(0.500000)
mov r31.yw, l(0,0.500000,0,0.500000)
sample_l_indexable(texture2d)(float,float,float,float) r32.xyzw, r31.xyxx, t10.xyzw, s1, l(0.000000)
max r10.w, r32.y, r32.x
max r10.w, r32.z, r10.w
min r14.z, r32.y, r32.x
min r14.z, r32.z, r14.z
add r10.w, r10.w, -r14.z
dp3 r14.z, r8.xyzx, cb0[6].xyzx
mad r31.z, r14.z, l(0.500000), l(0.500000)
sample_l_indexable(texture2d)(float,float,float,float) r14.z, r31.zwzz, t10.xywz, s1, l(0.000000)
mul r15.w, r6.z, r28.y
min r16.w, r6.z, r28.y
min r17.w, r32.w, r16.w
mul r18.w, r14.z, r15.w
dp3 r19.w, r12.xyzx, cb1[113].xyzx
add_sat r19.w, r19.w, cb1[114].x
mad r19.w, r19.w, cb1[114].y, cb1[114].z
mul r20.w, r17.w, cb1[108].y
add r31.xyz, -r18.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
mad r31.xyz, r20.wwww, r31.xyzx, r18.xyzx
mul r31.xyz, r19.wwww, r31.xyzx
mad r19.w, r6.w, l(0.350000024), l(0.650000)
min r19.w, r19.w, l(1.500000)
max r33.xyz, r6.wwww, l(1.250000, 0.000000, 0.500000, 0.000000)
min r33.xyz, r33.xyzx, l(1.750000, 1.500000, 1.500000, 0.000000)
add r6.w, -r19.w, r33.x
mad r6.w, cb1[108].x, r6.w, r19.w
mul r34.xyz, r6.wwww, r31.xyzx
mul r34.xyz, r34.xyzx, cb1[107].wwww
dp3 r6.w, r27.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
mad r27.xyz, r26.xyzx, r5.zzzz, -r6.wwww
mad r27.xyz, r17.wwww, r27.xyzx, r6.wwww
mul r31.xyz, r31.xyzx, r33.yyyy
mad r30.yzw, r26.xxyz, cb1[119].yyyy, r30.yyyy
mad r27.xyz, r31.xyzx, r30.yzwy, r27.xyzx
mad r27.xyz, r27.xyzx, cb1[107].yyyy, -r34.xyzx
mad r27.xyz, r6.yyyy, r27.xyzx, r34.xyzx
dp3 r6.w, r29.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
mad r29.xyz, r28.xzwx, l(0.650000, 0.650000, 0.650000, 0.000000), -r6.wwww
mad r29.xyz, r29.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r6.wwww
mad_sat r6.w, r14.z, r15.w, r32.w
mad r30.yzw, r19.xxyz, cb1[107].zzzz, -r29.xxyz
mad r29.xyz, r6.wwww, r30.yzwy, r29.xyzx
mad r30.yzw, r20.xxyz, r3.xxxx, -r29.xxyz
mad r29.xyz, r17.wwww, r30.yzwy, r29.xyzx
add r6.w, -r10.w, l(1.000000)
mad r30.yzw, r32.xxyz, r10.wwww, r6.wwww
mul r30.yzw, r29.xxyz, r30.yyzw
mad r31.xyz, r20.xyzx, r3.xxxx, -r11.yyyy
mad r31.xyz, r31.xyzx, l(1.200000, 1.200000, 1.200000, 0.000000), r11.yyyy
mad r31.xyz, -r19.xyzx, cb1[107].zzzz, r31.xyzx
mad r28.xzw, r18.wwww, r31.xxyz, r28.xxzw
dp3 r6.w, r29.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
dp3 r10.w, r30.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000)
max r10.w, r10.w, l(0.001000)
div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w
mul r6.w, r6.w, r10.w
max r6.w, r6.w, l(0.000000)
min r6.w, r6.w, l(1.500000)
mad r29.xyz, r30.yzwy, r6.wwww, -r28.xzwx
mad r28.xzw, r6.yyyy, r29.xxyz, r28.xxzw
mul r29.xyz, r27.xyzx, r28.xzwx
mad r6.w, -r14.z, r15.w, r17.w
mad r6.w, r6.y, r6.w, r18.w
add r10.w, l(1.000000), -cb1[107].z
mad r10.w, r6.w, r10.w, cb1[107].z
mad r6.w, r6.w, l(0.500000), l(0.500000)
mul r6.w, r10.w, r6.w
mul r30.yzw, r6.wwww, r27.xxyz
add r6.w, r17.y, l(-0.500000)
mad r31.y, r6.y, r6.w, l(0.500000)
mov r31.xz, cb0[6].xxzx
dp3 r6.w, r31.xyzx, r31.xyzx
max r6.w, r6.w, l(1.175494351E-38)
rsq r6.w, r6.w
mul r31.xyz, r6.wwww, r31.xyzx
add r31.xyz, r31.xyzx, r31.xyzx
mad r17.xyz, r17.xyzx, r6.yyyy, r31.xyzx
add r6.w, r6.y, l(2.000000)
mad r17.xyz, r2.xyzx, r6.wwww, r17.xyzx
dp3 r6.w, r17.xyzx, r17.xyzx
rsq r6.w, r6.w
mul r17.xyz, r6.wwww, r17.xyzx
dp3_sat r6.w, r16.xyzx, r2.xyzx
dp3 r14.z, r16.xyzx, r17.xyzx
mul r15.w, r3.z, r3.z
mad r17.w, r14.z, r15.w, -r14.z
mad r14.z, r17.w, r14.z, l(1.000000)
mul r14.z, r14.z, r14.z
mad r31.xyz, r2.xyzx, cb6[19].zzzz, r17.xyzx
dp3 r17.w, r31.xyzx, r31.xyzx
rsq r17.w, r17.w
mul r31.xyz, r17.wwww, r31.xyzx
mul r17.w, r5.y, r5.w
dp3 r18.w, r13.zxyz, r31.xyzx
mul r32.x, r5.y, r18.w
mul r33.xyw, r12.zxzy, r13.xyxz
mad r12.xyz, r12.yzxy, r13.yzxy, -r33.xywx
mul r12.xyz, r12.xyzx, v4.wwww
dp3 r5.y, r12.xyzx, r31.xyzx
mul r32.y, r5.y, r5.w
dp3 r5.y, r16.xyzx, r31.xyzx
mul r32.z, r5.y, r17.w
dp3 r5.y, r32.xyzx, r32.xyzx
mul r5.w, r17.w, r17.w
mul r5.w, r17.w, r5.w
mul r5.y, r5.y, r5.y
ne r12.x, r14.z, r15.w
div r12.y, r15.w, r14.z
movc r12.x, r12.x, r12.y, l(1.000000)
mad r12.y, r6.w, l(2.000000), r3.z
add r12.y, r12.y, l(0.000100)
div r12.y, l(0.500000), r12.y
mad r12.x, r12.x, r12.y, l(-0.0000610351562)
max r12.x, r12.x, l(0.000000)
min r12.x, r12.x, l(20.000000)
ne r12.y, r5.y, r5.w
div r5.y, r5.w, r5.y
max r5.y, r5.y, l(0.000000)
min r5.y, r5.y, l(20.000000)
movc r5.y, r12.y, r5.y, l(1.000000)
mul r5.y, r5.y, r9.w
mul r13.xyz, r23.xyzx, r5.yyyy
mad r12.xyz, r23.xyzx, r12.xxxx, r13.xyzx
mul r12.xyz, r30.yzwy, r12.xyzx
mul r12.xyz, r12.xyzx, cb1[120].wwww
mov r7.x, -r24.y
mov r7.z, l(0.001000)
dp3 r5.y, r7.xyzx, r7.xyzx
rsq r5.y, r5.y
mul r13.xyz, r5.yyyy, r7.zyxz
add r5.y, l(1.000000), -cb6[1].z
mad r5.y, r7.w, cb6[1].z, r5.y
mad r27.xyz, r27.xyzx, r28.xzwx, r12.xyzx
dp3 r5.w, r17.yzxy, r13.xyzx
add r5.w, |r5.w|, l(-0.150000)
mul_sat r5.w, r5.w, l(-19.999998)
mad r7.x, r5.w, l(-2.000000), l(3.000000)
mul r5.w, r5.w, r5.w
mul r5.w, r5.w, r7.x
mov r24.z, r7.y
mul r7.xyz, r13.xyzx, r24.yzxy
mad r7.xyz, r24.xyzx, r13.yzxy, -r7.xyzx
dp3 r7.x, r17.xyzx, r7.xyzx
add r7.x, |r7.x|, l(-0.070000)
mul_sat r7.x, r7.x, l(-20.000000)
mad r7.y, r7.x, l(-2.000000), l(3.000000)
mul r7.x, r7.x, r7.x
mul r7.x, r7.x, r7.y
mul r5.w, r5.w, r7.x
dp3 r7.x, r24.zxyz, r17.xyzx
max r7.x, r7.x, l(0.000000)
mul r5.w, r5.w, r7.x
dp2 r5.w, r5.wwww, r12.wwww
mul r7.xyz, r30.yzwy, r5.wwww
mad r7.xyz, r27.xyzx, r2.wwww, r7.xyzx
mad r7.xyz, r12.xyzx, r5.xxxx, r7.xyzx
mad r7.xyz, r29.xyzx, r5.yyyy, r7.xyzx
dp3 r2.w, r7.xyzx, l(0.212672904, 0.715152204, 0.072175, 0.000000)
add r5.x, r2.w, l(-0.500000)
max r5.x, r5.x, l(0.000000)
min r5.x, r5.x, l(0.500000)
mul r12.z, cb0[0].x, cb1[116].x
mul r12.x, cb0[1].x, cb1[116].x
mul r12.y, cb0[2].x, cb1[116].x
mul r13.z, cb0[0].y, cb1[116].y
mul r13.x, cb0[1].y, cb1[116].y
mul r13.y, cb0[2].y, cb1[116].y
add r12.xyz, r12.xyzx, r13.xyzx
mov r13.xz, cb1[116].yyxy
mov r13.y, l(0)
add r12.xyz, r12.xyzx, -r13.xyzx
mad r12.xyz, cb1[122].wwww, r12.xyzx, r13.xyzx
mul r13.xyz, r12.xyzx, cb0[6].zxyz
mad r12.xyz, cb0[6].yzxy, r12.yzxy, -r13.xyzx
dp3 r5.w, r12.xyzx, r12.xyzx
rsq r5.w, r5.w
mul r12.xyz, r5.wwww, r12.xyzx
dp3 r5.w, r2.xyzx, r8.xyzx
add r13.xy, -|r5.wwww|, l(1.000000, 0.399999976, 0.000000, 0.000000)
dp3 r9.w, r25.xyzx, r8.xyzx
add r12.w, -r6.y, l(1.000000)
dp3_sat r17.x, r15.xyzx, r2.xyzx
add r3.w, -r3.y, r3.w
mad r3.w, r4.z, r3.w, r3.y
mul r24.y, r3.w, r3.w
mul r25.x, r17.x, r17.x
mul r25.z, r17.x, r25.x
mul r4.z, r24.y, r24.y
mul r24.z, r24.y, r4.z
mov r17.yzw, l(0,0.0365463011,9.063200,0.990440)
dp2 r27.x, l(3.327070, 1.000000, 0.000000, 0.000000), r17.xyxx
dp2 r27.y, l(-9.047560, 1.000000, 0.000000, 0.000000), r17.xzxx
mov r24.x, l(1.000000)
dp2 r4.z, r27.xyxx, r24.xyxx
mov r25.yw, l(0,9.044010,0,1.000000)
dp3 r27.x, l(3.596850, -1.367720, 1.000000, 0.000000), r25.xzwx
dp3 r27.y, l(-16.317400, 1.000000, 9.229490, 0.000000), r25.xyzx
mov r29.x, l(5.565890)
mov r29.yz, r25.xxzx
dp3 r27.z, l(1.000000, 19.788601, -20.212299, 0.000000), r29.xyzx
dp3 r13.z, r27.xyzx, r24.xyzx
div r4.z, r4.z, r13.z
dp2 r27.x, l(-1.285140, 1.000000, 0.000000, 0.000000), r17.xwxx
mov r25.x, l(1.296780)
mov r25.y, r17.x
dp2 r27.y, l(1.000000, -0.755907, 0.000000, 0.000000), r25.xyxx
dp2 r13.z, r27.xyxx, r24.xyxx
dp3 r17.x, l(2.923380, 59.418800, 1.000000, 0.000000), r25.yzwy
mov r25.xw, l(20.322500,0,0,121.563004)
dp3 r17.y, l(1.000000, -27.030199, 222.591995, 0.000000), r25.xyzx
dp3 r17.z, l(626.130005, 316.627014, 1.000000, 0.000000), r25.yzwy
dp3 r14.z, r17.xyzx, r24.xyzx
div r13.z, r13.z, r14.z
mad r17.xyz, r23.xyzx, r4.zzzz, r13.zzzz
add r4.z, r4.z, r13.z
mad r5.x, r5.x, r5.x, l(1.000000)
add r7.xyz, -r2.wwww, r7.xyzx
mad r7.xyz, r5.xxxx, r7.xyzx, r2.wwww
mad r24.xy, cb1[116].wwww, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000)
add r2.w, -r24.x, r24.y
add r5.x, r13.x, -r24.x
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
mul_sat r2.w, r2.w, r5.x
mad r5.x, r2.w, l(-2.000000), l(3.000000)
mul r2.w, r2.w, r2.w
mul r2.w, r2.w, r5.x
mul r24.xyz, r2.wwww, cb1[115].xyzx
mul r24.xyz, r24.xyzx, cb1[115].wwww
dp3 r2.w, r4.xywx, r12.xyzx
add_sat r2.w, r2.w, l(1.000000)
min r2.w, r6.z, r2.w
min r2.w, r28.y, r2.w
mul r24.xyz, r2.wwww, r24.xyzx
mad r25.xyz, r20.xyzx, r3.xxxx, l(-0.250000, -0.250000, -0.250000, 0.000000)
mad r25.xyz, cb1[116].zzzz, r25.xyzx, l(0.250000, 0.250000, 0.250000, 0.000000)
dp3_sat r2.w, r12.xyzx, r8.xyzx
mul r12.xyz, r2.wwww, r25.xyzx
max r2.w, r21.y, r21.x
max r2.w, r21.z, r2.w
mul r2.w, r2.w, l(0.500000)
max r2.w, r2.w, l(1.000000)
div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
mul r21.xyz, r2.wwww, r21.xyzx
mad r25.xyz, r26.xyzx, r5.zzzz, -r21.xyzx
mad r21.xyz, r6.yyyy, r25.xyzx, r21.xyzx
dp3 r2.w, r22.xyzx, r8.xyzx
mul r5.x, r8.w, r2.w
mad r5.z, r9.w, l(0.500000), l(-1.000000)
mad r5.z, -r9.w, r5.z, l(0.500000)
mad r2.w, -r2.w, r8.w, r5.z
mad_sat r2.w, r6.y, r2.w, r5.x
mul r21.xyz, r2.wwww, r21.xyzx
mad r2.w, r13.w, r6.y, r12.w
mul r2.w, r30.x, r2.w
mul r21.xyz, r2.wwww, r21.xyzx
mul_sat r2.w, r13.y, l(5.00000048)
mad r5.x, r2.w, l(-2.000000), l(3.000000)
mul r2.w, r2.w, r2.w
mul r2.w, r2.w, r5.x
mul r13.yzw, r2.wwww, r21.xxyz
mul r13.yzw, r16.wwww, r13.yyzw
add r2.w, r11.y, l(-0.100000)
mul_sat r2.w, r2.w, l(-16.666666)
mad r5.x, r2.w, l(-2.000000), l(3.000000)
mul r2.w, r2.w, r2.w
mul r2.w, r2.w, r5.x
mad r2.w, r2.w, r6.y, r12.w
mul r13.yzw, r2.wwww, r13.yyzw
max r21.xyz, r10.xyzx, l(0.150000, 0.150000, 0.150000, 0.000000)
mul r13.yzw, r13.yyzw, r21.xxyz
mad r12.xyz, r24.xyzx, r12.xyzx, r13.yzwy
add r7.xyz, r7.xyzx, r12.xyzx
utof r5.xz, r14.xxyx
mul r6.yz, r5.xxzx, l(0.000000, 0.031250, 0.031250, 0.000000)
round_ni r6.yz, r6.yyzy
mad r2.w, r6.z, cb3[1].y, r6.y
mul r2.w, r2.w, l(8.000000)
ftoi r2.w, r2.w
mad r6.y, -cb1[3].y, cb3[2].w, v0.w
round_ni r6.y, r6.y
add r6.z, l(-1.000000), cb3[1].w
max r8.w, r6.y, l(0.000000)
min r6.z, r6.z, r8.w
mul r8.w, r6.z, l(8.000000)
ftoi r8.w, r8.w
dp3 r9.w, -r2.xyzx, r15.xyzx
add r9.w, r9.w, r9.w
mad r12.xyz, r15.xyzx, -r9.wwww, -r2.xyzx
max r3.w, r3.w, l(0.001000)
log r3.w, r3.w
mad r3.w, r3.w, l(1.200000), l(5.000000)
sample_l_indexable(texturecube)(float,float,float,float) r12.xyz, r12.xyzx, t19.xyzw, s1, r3.w
add r3.w, -r4.z, l(1.000000)
div r3.w, r3.w, r4.z
mul r13.yzw, r3.wwww, r23.xxyz
mad r13.yzw, r13.yyzw, r17.xxyz, r17.xxyz
mul r12.xyz, r12.xyzx, r13.yzwy
mul r3.w, r33.z, cb1[107].w
mul r3.w, r10.w, r3.w
mul r12.xyz, r3.wwww, r12.xyzx
mad r7.xyz, r12.xyzx, r18.xyzx, r7.xyzx
ge r3.w, r6.z, r6.y
iadd r4.z, r8.w, cb1[28].y
mad r6.y, r12.w, l(-0.250000), l(0.750000)
mad r12.xyz, r20.xyzx, r3.xxxx, l(-0.500000, -0.500000, -0.500000, 0.000000)
add r3.x, -r3.z, l(0.010000)
ge r6.x, r6.x, l(0.500000)
and r6.x, r6.x, l(0x3f800000)
mov r15.w, l(1.000000)
mov r13.yzw, r7.xxyz
mov r6.z, l(0)
loop
  ilt r8.w, l(7), r6.z
  breakc_nz r8.w
  iadd r8.w, r2.w, r6.z
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r8.w, r8.w, l(0), t0.xxxx
  iadd r9.w, r4.z, r6.z
  ld_structured_indexable(structured_buffer, stride=4)(mixed,mixed,mixed,mixed) r9.w, r9.w, l(0), t0.xxxx
  and r8.w, r8.w, r9.w
  and r8.w, r3.w, r8.w
  ishl r9.w, r6.z, l(5)
  mov r17.xyz, r13.yzwy
  mov r10.w, r8.w
  loop
    breakc_z r10.w
    firstbit_lo r11.y, r10.w
    ishl r12.w, l(1), r11.y
    xor r12.w, r10.w, r12.w
    iadd r11.y, r9.w, r11.y
    bfi r18.xyzw, l(29, 29, 29, 29), l(3, 3, 3, 3), r11.yyyy, l(1, 5, 6, 7)
    ftou r14.z, cb4[r18.y + 6].w
    and r16.w, r14.z, l(1)
    ieq r16.w, r16.w, l(1)
    if_nz r16.w
      add r15.xyz, r9.xyzx, -cb4[r18.x + 6].xyzx
      and r20.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb4[r18.y + 6].xzyx
      and r21.xyz, l(0x0000ffff, 0x0000ffff, 0x0000ffff, 0), cb4[r18.z + 6].yxzy
      ushr r22.xyz, cb4[r18.y + 6].xzyx, l(16, 16, 16, 0)
      ushr r24.xyz, cb4[r18.z + 6].yxzy, l(16, 16, 16, 0)
      f16tof32 r20.xyz, r20.xyzx
      f16tof32 r21.xyz, r21.xyzx
      f16tof32 r22.xyz, r22.xyzx
      f16tof32 r24.xyw, r24.yxyz
      mov r25.xz, r20.xxzx
      mov r25.yw, r22.xxxz
      dp4 r16.w, r15.xyzw, r25.xyzw
      mov r22.x, r20.y
      mov r22.z, r21.y
      mov r22.w, r24.x
      dp4 r17.w, r15.xyzw, r22.xyzw
      mov r24.xz, r21.xxzx
      dp4 r15.x, r15.xyzw, r24.xyzw
      max r15.y, |r16.w|, |r17.w|
      max r15.x, |r15.x|, r15.y
      mad r15.y, cb4[r18.w + 6].x, l(0.500000), l(0.500000)
      add r15.x, -r15.y, r15.x
      mad r15.y, -cb4[r18.w + 6].x, l(0.500000), l(0.500000)
      div_sat r15.x, r15.x, r15.y
      add r15.x, -r15.x, l(1.000000)
      mul r15.x, r15.x, r15.x
    else
      mov r15.x, l(1.000000)
    endif
    lt r15.y, r15.x, l(0.001000)
    if_nz r15.y
      mov r10.w, r12.w
      continue
    endif
    ishl r15.y, r11.y, l(3)
    lt r15.z, cb4[r15.y + 6].w, l(1.500000)
    if_nz r15.z
      bfi r15.z, l(29), l(3), r11.y, l(3)
      ieq r16.w, l(16), cb4[r15.z + 6].w
      add r17.w, cb1[119].z, cb4[r15.z + 6].z
      lt r17.w, r17.w, l(0.500000)
      or r16.w, r16.w, r17.w
      if_z r16.w
        bfi r20.xy, l(29, 29, 0, 0), l(3, 3, 0, 0), r11.yyyy, l(2, 4, 0, 0)
        ftou r11.y, cb4[r15.y + 6].w
        and r11.y, r11.y, l(1)
        ieq r16.w, r11.y, l(0)
        not r17.w, r16.w
        lt r18.y, l(0.000000), cb4[r20.x + 6].z
        and r17.w, r17.w, r18.y
        ieq r18.y, l(4), cb4[r15.z + 6].w
        movc r19.w, r11.y, l(0), l(1.000000)
        mad r20.z, cb4[r20.x + 6].y, l(0.500000), l(0.500000)
        add r21.z, r20.z, -|cb4[r20.x + 6].x|
        add r21.x, -r21.z, cb4[r20.x + 6].y
        add r20.z, -|r21.z|, l(1.000000)
        add r20.z, -|r21.x|, r20.z
        max r20.z, r20.z, l(0.000488281250)
        ge r20.w, cb4[r20.x + 6].x, l(0.000000)
        movc r21.y, r20.w, r20.z, -r20.z
        dp3 r20.z, r21.xyzx, r21.xyzx
        rsq r20.z, r20.z
        mul r21.xyz, r20.zzzz, r21.xyzx
        add r20.z, cb4[r20.y + 6].y, cb4[r20.y + 6].y
        max r20.z, r20.z, l(0.100000)
        and r20.w, r18.y, l(0x3f800000)
        add r20.z, r20.z, -cb4[r18.z + 6].w
        mad r18.z, r20.w, r20.z, cb4[r18.z + 6].w
        add r22.xyz, -r9.xyzx, cb4[r18.x + 6].xyzx
        dp3 r20.z, r22.yzxy, -r21.xyzx
        lt r20.w, l(0.500000), cb4[r20.y + 6].z
        and r20.w, r18.y, r20.w
        and r20.w, r20.w, l(0x3f800000)
        mul r20.w, r19.w, r20.w
        mad r24.xyz, -r21.zxyz, r20.zzzz, -r22.xyzx
        mad r22.xyz, r20.wwww, r24.xyzx, r22.xyzx
        dp3 r20.z, r22.xyzx, r22.xyzx
        rsq r20.w, r20.z
        mul r24.xyz, r20.wwww, r22.xyzx
        if_nz r17.w
          mul r25.xyz, r21.zxyz, cb4[r20.x + 6].zzzz
          mad r26.xyz, -r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx
          mad r25.xyz, r25.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000), r22.xyzx
          dp3 r20.w, r26.xyzx, r26.xyzx
          sqrt r20.w, r20.w
          dp3 r21.w, r25.xyzx, r25.xyzx
          sqrt r21.w, r21.w
          mul r27.xyz, r21.xyzx, r24.xyzx
          mad r27.xyz, r21.zxyz, r24.yzxy, -r27.xyzx
          mul r29.xyz, r21.xyzx, r27.xyzx
          mad r27.xyz, r27.zxyz, r21.yzxy, -r29.xyzx
          dp3 r22.w, r27.xyzx, r27.xyzx
          rsq r22.w, r22.w
          mul r24.xyz, r22.wwww, r27.xyzx
          dp3 r22.w, r26.xyzx, r25.xyzx
          mad r22.w, r20.w, r21.w, r22.w
          mad r22.w, r22.w, l(0.500000), l(1.000000)
          div r22.w, l(1.000000, 1.000000, 1.000000, 1.000000), r22.w
          dp3 r23.w, r24.xyzx, r26.xyzx
          div r20.w, r23.w, r20.w
          dp3 r23.w, r24.xyzx, r25.xyzx
          div r21.w, r23.w, r21.w
          add r20.w, r20.w, r21.w
          mul_sat r20.w, r20.w, l(0.500000)
          mul r20.w, r20.w, r22.w
        else
          mov r20.w, l(1.000000)
        endif
        lt r21.w, r18.z, l(0.000000)
        if_nz r21.w
          mul r21.w, cb4[r18.x + 6].w, cb4[r18.x + 6].w
          mul r21.w, r20.z, r21.w
          mad r21.w, -r21.w, r21.w, l(1.000000)
          max r21.w, r21.w, l(0.000000)
          add r20.z, r20.z, l(1.000000)
          div r20.z, l(1.000000, 1.000000, 1.000000, 1.000000), r20.z
          and r22.w, r17.w, l(0x3f800000)
          add r23.w, -r20.z, r20.w
          mad r20.z, r22.w, r23.w, r20.z
          mul r21.w, r21.w, r21.w
          mul r20.z, r20.z, r21.w
        else
          mul r25.xyz, r22.xyzx, cb4[r18.x + 6].wwww
          dp3 r21.w, r25.xyzx, r25.xyzx
          min r21.w, r21.w, l(1.000000)
          add r21.w, -r21.w, l(1.000000)
          log r21.w, r21.w
          mul r18.z, r18.z, r21.w
          exp r18.z, r18.z
          mul r20.z, r18.z, r20.w
        endif
        dp3 r18.z, r24.yzxy, -r21.xyzx
        add r18.z, r18.z, -cb4[r20.x + 6].z
        mul_sat r18.z, r18.z, cb4[r20.x + 6].w
        mad r18.z, r18.z, r18.z, l(-1.000000)
        mad r18.z, r19.w, r18.z, l(1.000000)
        mul r18.z, r18.z, r20.z
        ftoi r19.w, cb4[r18.w + 6].w
        not r17.w, r17.w
        ige r20.z, r19.w, l(0)
        and r17.w, r17.w, r20.z
        if_nz r17.w
          if_z r11.y
            ishl r11.y, r19.w, l(2)
            mul r21.xyz, r9.yyyy, cb7[r11.y + 33].xywx
            mad r21.xyz, cb7[r11.y + 32].xywx, r9.xxxx, r21.xyzx
            mad r21.xyz, cb7[r11.y + 34].xywx, r9.zzzz, r21.xyzx
            add r21.xyz, r21.xyzx, cb7[r11.y + 35].xywx
            div_sat r20.zw, r21.xxxy, r21.zzzz
            mad r20.zw, r20.zzzw, cb7[r19.w + 0].zzzw, cb7[r19.w + 0].xxxy
          else
            ishl r11.y, r19.w, l(2)
            dp3 r21.x, -r22.xyzx, cb7[r11.y + 32].xyzx
            dp3 r21.y, -r22.xyzx, cb7[r11.y + 33].xyzx
            dp3 r21.z, -r22.xyzx, cb7[r11.y + 34].xyzx
            lt r11.y, |r21.x|, |r21.y|
            and r11.y, r11.y, l(1)
            dp2 r17.w, |r21.xyxx|, icb[r11.y + 0].xyxx
            lt r17.w, r17.w, |r21.z|
            movc r11.y, r17.w, l(2), r11.y
            dp3 r17.w, r21.xyzx, icb[r11.y + 0].xyzx
            lt r17.w, r17.w, l(0.000000)
            bfi r11.y, l(31), l(1), r11.y, r17.w
            ushr r17.w, r11.y, l(1)
            dp3 r17.w, r21.xyzx, icb[r17.w + 0].xyzx
            div r21.w, l(0.000244140625), cb7[r19.w + 0].w
            add r21.w, -r21.w, l(0.500000)
            utof r22.x, r11.y
            ult r22.y, r11.y, l(2)
            and r22.y, r22.y, l(2)
            dp2 r21.x, r21.xzxx, icb[r22.y + 0].xzxx
            mul r21.x, r21.x, icb[r11.y + 4].z
            div r21.x, r21.x, |r17.w|
            mad r21.x, r21.x, r21.w, r22.x
            add r21.x, r21.x, l(0.500000)
            mul_sat r22.x, r21.x, l(0.166666672)
            iadd r21.x, l(-1), icb[r11.y + 4].y
            dp2 r21.x, r21.yzyy, icb[r21.x + 0].xyxx
            mul r11.y, r21.x, icb[r11.y + 4].w
            div r11.y, r11.y, |r17.w|
            mad_sat r22.y, -r11.y, r21.w, l(0.500000)
            mad r20.zw, r22.xxxy, cb7[r19.w + 0].zzzw, cb7[r19.w + 0].xxxy
          endif
          sample_l_indexable(texture2d)(float,float,float,float) r11.y, r20.zwzz, t20.yxzw, s1, l(0.000000)
          mul r18.z, r11.y, r18.z
        endif
        mul r11.y, r15.x, r18.z
        lt r15.x, l(0.000100), r11.y
        if_nz r15.x
          if_nz r18.y
            add r15.x, l(1.000000), -cb4[r20.y + 6].w
            dp3 r17.w, r11.xzwx, r24.xyzx
            add_sat r17.w, r17.w, l(0.500000)
            mad r18.z, r17.w, l(-2.000000), l(3.000000)
            mul r17.w, r17.w, r17.w
            mul r17.w, r17.w, r18.z
            mad r15.x, r17.w, cb4[r20.y + 6].w, r15.x
            mul r15.x, r15.x, cb4[r20.y + 6].x
            mul r15.x, r11.y, r15.x
            add r21.xyz, -r17.xyzx, cb4[r15.y + 6].xyzx
            mad r21.xyz, r15.xxxx, r21.xyzx, r17.xyzx
          endif
          if_z r18.y
            dp3 r15.x, r8.xyzx, r24.xyzx
            mov_sat r17.w, r15.x
            if_nz cb4[r15.z + 6].w
              and r14.z, r14.z, l(2)
              ine r14.z, r14.z, l(0)
              or r14.z, r14.z, r16.w
              if_nz r14.z
                ftoi r16.w, cb4[r15.z + 6].x
              else
                add r22.xyz, r9.xyzx, -cb4[r18.x + 6].xyzx
                lt r25.xyz, |r22.yzzy|, |r22.xxyx|
                and r18.z, r25.y, r25.x
                lt r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r22.xyzx
                ushr r19.w, cb4[r20.x + 6].w, l(24)
                ubfe r20.zw, l(0, 0, 8, 8), l(0, 0, 16, 8), cb4[r20.x + 6].wwww
                movc r19.w, r22.x, r19.w, r20.z
                and r20.x, l(255), cb4[r20.x + 6].w
                movc r20.x, r22.y, r20.w, r20.x
                ubfe r20.z, l(8), l(8), cb4[r15.z + 6].x
                and r20.w, l(255), cb4[r15.z + 6].x
                movc r20.z, r22.z, r20.z, r20.w
                movc r20.x, r25.z, r20.x, r20.z
                movc r18.z, r18.z, r19.w, r20.x
                ilt r19.w, r18.z, l(80)
                movc r16.w, r19.w, r18.z, l(-1)
              endif
              ige r18.z, r16.w, l(0)
              if_nz r18.z
                add r20.xzw, r9.xxyz, -cb4[r18.x + 6].xxyz
                ishl r18.x, r16.w, l(2)
                dp3 r18.z, r20.xzwx, r20.xzwx
                max r18.z, r18.z, l(1.175494351E-38)
                rsq r18.z, r18.z
                mul r20.xzw, r18.zzzz, r20.xxzw
                mad r20.xzw, -r20.xxzw, cb5[r16.w + 288].xxxx, r9.xxyz
                mul r18.z, l(5.000000), cb5[r16.w + 288].y
                mad r20.xzw, r11.xxzw, r18.zzzz, r20.xxzw
                mul r22.xyzw, r20.zzzz, cb5[r18.x + 65].xyzw
                mad r22.xyzw, cb5[r18.x + 64].xyzw, r20.xxxx, r22.xyzw
                mad r22.xyzw, cb5[r18.x + 66].xyzw, r20.wwww, r22.xyzw
                add r22.xyzw, r22.xyzw, cb5[r18.x + 67].xyzw
                div r20.xzw, r22.xxyz, r22.wwww
                ge r22.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), r20.xzwx
                ge r25.xyz, r20.xzwx, l(1.000000, 1.000000, 1.000000, 0.000000)
                add r18.xz, -cb5[r16.w + 344].xxyx, cb5[r16.w + 344].zzwz
                mad r18.xz, r20.xxzx, r18.xxzx, cb5[r16.w + 344].xxyx
                mad r26.xy, r18.xzxx, cb5[400].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
                round_ni r26.xy, r26.xyxx
                mad r18.xz, r18.xxzx, cb5[400].zzwz, -r26.xxyx
                add r27.xyzw, r18.xxzz, l(0.500000, 1.000000, 0.500000, 1.000000)
                mul r29.xyzw, r27.xxzz, r27.xxzz
                add r26.zw, -r18.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000)
                min r27.xz, r18.xxzx, l(0.000000, 0.000000, 0.000000, 0.000000)
                max r30.xy, r18.xzxx, l(0.000000, 0.000000, 0.000000, 0.000000)
                mul r31.xy, r26.zwzz, l(0.160000, 0.160000, 0.000000, 0.000000)
                mad r30.xy, -r30.xyxx, r30.xyxx, r27.ywyy
                add r30.xy, r30.xyxx, l(1.000000, 1.000000, 0.000000, 0.000000)
                mul r30.xy, r30.xyxx, l(0.160000, 0.160000, 0.000000, 0.000000)
                mul r29.xz, r29.xxzx, l(0.080000, 0.000000, 0.080000, 0.000000)
                mad r18.xz, r29.yywy, l(0.500000, 0.000000, 0.500000, 0.000000), -r18.xxzx
                mul r32.xy, r18.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000)
                mad r18.xz, -r27.xxzx, r27.xxzx, r26.zzwz
                add r18.xz, r18.xxzx, l(1.000000, 0.000000, 1.000000, 0.000000)
                mul r33.xy, r18.xzxx, l(0.160000, 0.160000, 0.000000, 0.000000)
                mul r18.xz, r27.yywy, l(0.160000, 0.000000, 0.160000, 0.000000)
                mov r32.z, r33.x
                mov r32.w, r18.x
                mov r31.z, r30.x
                mov r31.w, r29.x
                add r27.xyzw, r31.zwxz, r32.zwxz
                mov r33.z, r32.y
                mov r33.w, r18.z
                mov r30.z, r31.y
                mov r30.w, r29.z
                add r29.xyz, r30.zywz, r33.zywz
                div r31.xyz, r31.xzwx, r27.zwyz
                add r31.xyz, r31.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000)
                mul r31.xyz, r31.xyzx, cb5[400].xxxx
                div r30.xyz, r30.zywz, r29.xyzx
                add r30.xyz, r30.xyzx, l(-2.500000, -0.500000, 1.500000, 0.000000)
                mul r30.xyw, r30.xyxz, cb5[400].yyyy
                mul r32.xyzw, r27.zwyz, r29.xxxy
                mov r31.w, r30.x
                mad r33.xyzw, r26.xyxy, cb5[400].xyxy, r31.xwyw
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.x, r33.xyxx, t2.xxxx, s3, r20.w
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r33.zwzz, t2.xxxx, s3, r20.w
                mul r18.z, r18.z, r32.y
                mad r18.x, r32.x, r18.x, r18.z
                mad r26.zw, r26.xxxy, cb5[400].xxxy, r31.zzzw
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r26.zwzz, t2.xxxx, s3, r20.w
                mad r18.x, r32.z, r18.z, r18.x
                mov r30.z, r31.x
                mad r33.xyzw, r26.xyxy, cb5[400].xyxy, r30.zyzw
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r33.xyxx, t2.xxxx, s3, r20.w
                mad r18.x, r32.w, r18.z, r18.x
                mul r32.xyzw, r27.xyzw, r29.yyzz
                mov r30.xz, r31.yyzy
                mad r31.xyzw, r26.xyxy, cb5[400].xyxy, r30.xyzy
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.xyxx, t2.xxxx, s3, r20.w
                mad r18.x, r32.x, r18.z, r18.x
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r31.zwzz, t2.xxxx, s3, r20.w
                mad r18.x, r32.y, r18.z, r18.x
                sample_c_lz_indexable(texture2d)(float,float,float,float) r18.z, r33.zwzz, t2.xxxx, s3, r20.w
                mad r18.x, r32.z, r18.z, r18.x
                add r26.zw, -r20.xxxz, l(0.000000, 0.000000, 1.000000, 1.000000)
                min r20.xz, r20.xxzx, r26.zzwz
                or r22.xyz, r22.xyzx, r25.xyzx
                or r18.z, r22.y, r22.x
                or r18.z, r22.z, r18.z
                and r19.w, r20.w, l(0x7fffffff)
                ult r19.w, l(0x7f800000), r19.w
                or r18.z, r18.z, r19.w
                mad r25.xyzw, r26.xyxy, cb5[400].xyxy, r30.xwzw
                sample_c_lz_indexable(texture2d)(float,float,float,float) r19.w, r25.xyxx, t2.xxxx, s3, r20.w
                mad r18.x, r32.w, r19.w, r18.x
                mul r19.w, r27.y, r29.z
                sample_c_lz_indexable(texture2d)(float,float,float,float) r20.w, r25.zwzz, t2.xxxx, s3, r20.w
                mad r18.x, r19.w, r20.w, r18.x
                add r19.w, -r22.w, cb5[r16.w + 288].z
                mul r19.w, r19.w, l(0.250000)
                min r20.x, r20.z, r20.x
                min r19.w, r19.w, r20.x
                mul_sat r19.w, r19.w, l(20.000000)
                mad r20.x, r19.w, l(-2.000000), l(3.000000)
                mul r19.w, r19.w, r19.w
                mul r19.w, r19.w, r20.x
                min r19.w, r19.w, cb5[r16.w + 288].w
                movc r14.z, r14.z, r19.w, cb5[r16.w + 288].w
                add r16.w, r18.x, l(-1.000000)
                movc r16.w, r18.z, l(0), r16.w
                mad r14.z, r14.z, r16.w, l(1.000000)
              else
                dp3 r16.w, r4.xywx, r24.xyzx
                add_sat r14.z, r16.w, l(1.000000)
              endif
            else
              mov r14.z, l(1.000000)
            endif
            if_z cb4[r15.z + 6].w
              mul r20.xzw, r11.yyyy, cb4[r15.y + 6].xxyz
              add r16.w, l(1.000000), -cb4[r20.y + 6].y
              max r18.x, r20.z, r20.x
              max r18.x, r20.w, r18.x
              mul r18.x, r6.y, r18.x
              max r18.x, r18.x, l(1.000000)
              div r18.x, l(1.000000, 1.000000, 1.000000, 1.000000), r18.x
              mad r16.w, r18.x, cb4[r20.y + 6].y, r16.w
              mul r20.xzw, r16.wwww, cb4[r15.y + 6].xxyz
              mul r16.w, l(0.250000), cb4[r20.y + 6].x
              add_sat r18.x, r15.x, l(0.500000)
              mad r18.z, -cb4[r20.y + 6].x, l(0.250000), l(1.000000)
              mad r16.w, r18.x, r18.z, r16.w
              mul r20.xzw, r16.wwww, r20.xxzw
              mov r22.xyz, r28.xzwx
              mov r25.xyz, r28.xzwx
              mov r16.w, l(1.000000)
              mov r18.x, l(0)
            else
              ieq r18.z, l(3), cb4[r15.z + 6].w
              if_nz r18.z
                mad r26.xy, cb4[r20.y + 6].xxxx, l(-0.600000, -0.399999976, 0.000000, 0.000000), l(0.800000, 0.900000, 0.000000, 0.000000)
                add r18.z, -r26.x, r26.y
                add r19.w, r13.x, -r26.x
                div r18.z, l(1.000000, 1.000000, 1.000000, 1.000000), r18.z
                mul_sat r18.z, r18.z, r19.w
                mad r19.w, r18.z, l(-2.000000), l(3.000000)
                mul r18.z, r18.z, r18.z
                mul r18.z, r18.z, r19.w
                mul r18.z, r14.z, r18.z
                mul r11.y, r11.y, r18.z
                mul r26.xyz, r24.zxyz, cb0[6].xyzx
                mad r26.xyz, cb0[6].zxyz, r24.xyzx, -r26.xyzx
                mul r27.xyz, r26.xyzx, cb0[6].zxyz
                mad r26.xyz, cb0[6].yzxy, r26.yzxy, -r27.xyzx
                dp3 r18.z, r26.xyzx, r26.xyzx
                rsq r18.z, r18.z
                mul r26.xyz, r18.zzzz, r26.xyzx
                dp3_sat r17.w, r8.xyzx, -r26.xyzx
                mad r22.xyz, cb4[r20.y + 6].yyyy, r12.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
                mov r25.xyz, l(0,0,0,0)
                mov r16.w, l(1.000000)
                mov r18.x, l(0)
              else
                ieq r18.z, l(1), cb4[r15.z + 6].w
                if_nz r18.z
                  add r15.x, r15.x, cb4[r20.y + 6].x
                  max_sat r15.x, r15.x, l(-1.000000)
                  mul r17.w, r14.z, r15.x
                  mul r25.xyz, r19.xyzx, cb4[r20.y + 6].yyyy
                  mov r16.w, l(1.000000)
                  mov r18.x, l(0)
                else
                  ieq r14.z, l(2), cb4[r15.z + 6].w
                  if_nz r14.z
                    add r15.x, l(0.050000), cb4[r20.y + 6].x
                    add r15.x, r3.y, -r15.x
                    mul_sat r15.x, r15.x, l(-10.000000)
                    mad r19.w, r15.x, l(-2.000000), l(3.000000)
                    mul r15.x, r15.x, r15.x
                    mul r15.x, r15.x, r19.w
                    add r19.w, l(1.000000), -cb4[r20.y + 6].z
                    mad r19.w, r6.x, cb4[r20.y + 6].z, r19.w
                    mul r16.w, r15.x, r19.w
                  else
                    mov r16.w, l(1.000000)
                  endif
                  and r18.x, r14.z, cb4[r20.y + 6].y
                  mov r25.xyz, l(0,0,0,0)
                endif
                and r22.xyz, r10.xyzx, r18.zzzz
              endif
              mov r20.xzw, cb4[r15.y + 6].xxyz
            endif
            ine r14.z, l(3), cb4[r15.z + 6].w
            if_nz r14.z
              mad r14.z, r18.x, r3.x, r3.z
              mad r15.xyz, r1.xyzx, r1.wwww, r24.xyzx
              dp3 r18.x, r15.xyzx, r15.xyzx
              rsq r18.x, r18.x
              mul r15.xyz, r15.xyzx, r18.xxxx
              dp3 r15.x, r16.xyzx, r15.xyzx
              mul r15.y, r14.z, r14.z
              mad r15.z, r15.x, r15.y, -r15.x
              mad r15.x, r15.z, r15.x, l(1.000000)
              mul r15.x, r15.x, r15.x
              ne r15.z, r15.x, r15.y
              div r15.x, r15.y, r15.x
              movc r15.x, r15.z, r15.x, l(1.000000)
              mad r14.z, r6.w, l(2.000000), r14.z
              add r14.z, r14.z, l(0.000100)
              div r14.z, l(0.500000), r14.z
              mad r14.z, r15.x, r14.z, l(-0.0000610351562)
              max r14.z, r14.z, l(0.000000)
              min r14.z, r14.z, l(20.000000)
              mul r15.xyz, r14.zzzz, r23.xyzx
              mul r15.xyz, r16.wwww, r15.xyzx
              mul r15.xyz, r15.xyzx, cb4[r18.w + 6].zzzz
            else
              mov r15.xyz, l(0,0,0,0)
            endif
            mul r18.xzw, r11.yyyy, r20.xxzw
            add r20.xyz, r22.xyzx, -r25.xyzx
            mad r20.xyz, r17.wwww, r20.xyzx, r25.xyzx
            mul r20.xyz, r18.xzwx, r20.xyzx
            mul r15.xyz, r15.xyzx, r18.xzwx
            mul r15.xyz, r17.wwww, r15.xyzx
            mad r15.xyz, r20.xyzx, r5.yyyy, r15.xyzx
            add r17.xyz, r15.xyzx, r17.xyzx
          endif
        else
          mov r18.y, l(0)
        endif
        movc r17.xyz, r18.yyyy, r21.xyzx, r17.xyzx
      endif
    endif
    mov r10.w, r12.w
  endloop
  mov r13.yzw, r17.xxyz
  iadd r6.z, r6.z, l(1)
endloop
lt r1.x, l(0.500000), cb6[3].x
if_nz r1.x
  dp3 r1.x, r13.yzwy, l(0.212672904, 0.715152204, 0.072175, 0.000000)
  add r3.xyz, -r1.xxxx, r13.yzwy
  mad r1.xyz, cb6[3].zzzz, r3.xyzx, r1.xxxx
  add r1.xyz, r1.xyzx, l(-0.500000, -0.500000, -0.500000, 0.000000)
  mad r1.xyz, cb6[3].wwww, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
  mul r3.xyz, r1.xyzx, cb6[3].yyyy
  mad r1.xyz, -r1.xyzx, cb6[3].yyyy, cb6[8].xyzx
  mad r1.xyz, cb6[8].wwww, r1.xyzx, r3.xyzx
  add r2.w, l(1.000000), -cb6[4].x
  mov_sat r5.w, r5.w
  add r3.x, -r5.w, l(1.000000)
  add r3.y, -r2.w, l(1.000000)
  add r2.w, -r2.w, r3.x
  div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y
  mul_sat r2.w, r2.w, r3.x
  mad r3.x, r2.w, l(-2.000000), l(3.000000)
  mul r2.w, r2.w, r2.w
  mul r2.w, r2.w, r3.x
  mul r3.xyz, r2.wwww, cb6[9].xyzx
  mad r13.yzw, r3.xxyz, cb6[4].yyyy, r1.xxyz
endif
mul r1.xyz, r13.yzwy, cb1[27].yyyy
eq r2.w, l(1.000000), cb6[2].x
movc o0.w, r2.w, r7.w, l(1.000000)
lt r2.w, cb1[119].w, l(0.500000)
if_nz r2.w
  mul r2.w, r0.w, r1.w
  mad r3.x, r9.y, cb1[74].w, cb1[75].w
  mad r3.y, r2.w, cb1[72].w, -cb1[71].w
  max r3.xy, r3.xyxx, l(0.010000, 0.000000, 0.000000, 0.000000)
  mul r3.z, r3.x, l(-1.442695)
  exp r3.z, r3.z
  add r3.z, -r3.z, l(1.000000)
  div r3.x, r3.z, r3.x
  mad r3.z, r9.y, cb1[74].w, cb1[76].w
  mul r3.z, r3.z, l(1.442695)
  exp r3.z, r3.z
  mul r3.x, r3.z, r3.x
  mul r3.x, r3.x, -r3.y
  mul r3.xyz, r3.xxxx, cb1[73].xyzx
  mul r3.xyz, r3.xyzx, l(1.442695, 1.442695, 1.442695, 0.000000)
  exp r3.xyz, r3.xyzx
  dp3 r3.w, -r2.xyzx, cb1[72].xyzx
  mad r4.x, cb1[73].w, cb1[73].w, l(1.000000)
  dp2 r4.y, r3.wwww, cb1[73].wwww
  add r4.x, -r4.y, r4.x
  lt r4.y, l(0.000000), cb1[83].z
  if_nz r4.y
    and r14.w, l(7), cb1[26].w
    imad r4.yzw, r14.xxyw, l(0, 0x0019660d, 0x0019660d, 0x0019660d), l(0, 0x3c6ef35f, 0x3c6ef35f, 0x3c6ef35f)
    imad r4.y, r4.z, r4.w, r4.y
    imad r4.z, r4.w, r4.y, r4.z
    imad r4.w, r4.y, r4.z, r4.w
    imad r6.x, r4.z, r4.w, r4.y
    dp3 r0.x, -r2.xyzx, -r0.xyzx
    lt r0.y, l(5.960464478E-08), r0.x
    div r0.x, l(1.000000, 1.000000, 1.000000, 1.000000), r0.x
    and r0.x, r0.x, r0.y
    mul r0.x, r0.x, cb1[83].w
    div r0.y, l(1.000000, 1.000000, 1.000000, 1.000000), r2.w
    mul r0.z, r0.y, r0.x
    mad r4.y, r0.z, v2.y, cb0[44].y
    mad r0.z, -r0.z, v2.y, v2.y
    mad r0.x, -r0.x, r0.y, l(1.000000)
    mul r0.y, r2.w, r0.x
    mul r5.y, r0.z, cb1[77].z
    mul r0.z, r0.z, cb1[80].x
    max r0.z, r0.z, l(-127.000000)
    add r5.w, r4.y, -cb1[77].x
    mul r5.w, r5.w, cb1[77].z
    max r5.yw, r5.yyyw, l(0.000000, -127.000000, 0.000000, -127.000000)
    exp r5.w, -r5.w
    mul r5.w, r5.w, cb1[77].y
    lt r6.z, l(5.960464478E-08), |r5.y|
    exp r6.w, -r5.y
    add r6.w, -r6.w, l(1.000000)
    div r6.w, r6.w, r5.y
    mad r5.y, -r5.y, l(0.240226507), l(0.693147182)
    movc r5.y, r6.z, r6.w, r5.y
    add r4.y, r4.y, -cb1[80].z
    mul r4.y, r4.y, cb1[80].x
    max r4.y, r4.y, l(-127.000000)
    exp r4.y, -r4.y
    mul r4.y, r4.y, cb1[80].y
    lt r6.z, l(5.960464478E-08), |r0.z|
    exp r6.w, -r0.z
    add r6.w, -r6.w, l(1.000000)
    div r6.w, r6.w, r0.z
    mad r0.z, -r0.z, l(0.240226507), l(0.693147182)
    movc r0.z, r6.z, r6.w, r0.z
    mul r0.z, r0.z, r4.y
    mad r0.z, r5.w, r5.y, r0.z
    mad_sat r5.yw, r2.wwww, cb1[78].wwwy, cb1[78].zzzx
    mul r0.y, r0.y, r0.z
    exp r0.y, -r0.y
    min r0.y, r0.y, l(1.000000)
    max r0.y, r0.y, cb1[79].w
    add r0.y, r5.w, r0.y
    add r0.y, r5.y, r0.y
    min r0.y, r0.y, l(1.000000)
    imad r6.y, r4.w, r6.x, r4.z
    ushr r4.yz, r6.xxyx, l(0, 16, 16, 0)
    utof r4.yz, r4.yyzy
    mad r4.yz, r4.yyzy, l(0.000000, 0.0000305180438, 0.0000305180438, 0.000000), l(0.000000, -1.000000, -1.000000, 0.000000)
    mad r4.yz, r4.yyzy, cb1[87].wwww, r5.xxzx
    mul r6.xy, r4.yzyy, cb1[85].xyxx
    mad r4.y, v0.w, cb1[84].x, cb1[84].y
    log r4.y, r4.y
    mul r4.y, r4.y, cb1[84].z
    div r6.z, r4.y, cb1[83].z
    sample_l_indexable(texture3d)(float,float,float,float) r6.xyzw, r6.xyzx, t21.xyzw, s1, l(0.000000)
    add r4.y, v0.w, -cb1[86].z
    mul_sat r4.y, r4.y, l(1000000.000000)
    add r6.xyzw, r6.xyzw, l(-0.000000, -0.000000, -0.000000, -1.000000)
    mad r6.xyzw, r4.yyyy, r6.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000)
    add r4.y, -r0.y, l(1.000000)
    dp3_sat r4.z, r2.xyzx, cb1[81].xyzx
    log r4.z, r4.z
    mul r4.z, r4.z, cb1[82].w
    exp r4.z, r4.z
    mul r5.xzw, r4.zzzz, cb1[82].xxyz
    mad r0.x, r0.x, r2.w, -cb1[81].w
    max r0.x, r0.x, l(0.000000)
    mul r0.x, r0.x, r0.z
    exp r0.x, -r0.x
    min r0.x, r0.x, l(1.000000)
    add r0.x, -r0.x, l(1.000000)
    mul r5.xzw, r0.xxxx, r5.xxzw
    add r0.x, -r5.y, l(1.000000)
    mul r5.xyz, r0.xxxx, r5.xzwx
    mad r4.yzw, cb1[79].xxyz, r4.yyyy, r5.xxyz
    mad r4.yzw, r4.yyzw, r6.wwww, r6.xxyz
    mul r0.x, r0.y, r6.w
  else
    mul r0.y, v2.y, cb1[77].z
    mul r0.z, v2.y, cb1[80].x
    max r0.yz, r0.yyzy, l(0.000000, -127.000000, -127.000000, 0.000000)
    add r5.x, cb0[44].y, -cb1[77].x
    mul r5.x, r5.x, cb1[77].z
    max r5.x, r5.x, l(-127.000000)
    exp r5.x, -r5.x
    mul r5.x, r5.x, cb1[77].y
    lt r5.y, l(5.960464478E-08), |r0.y|
    exp r5.z, -r0.y
    add r5.z, -r5.z, l(1.000000)
    div r5.z, r5.z, r0.y
    mad r0.y, -r0.y, l(0.240226507), l(0.693147182)
    movc r0.y, r5.y, r5.z, r0.y
    add r5.y, cb0[44].y, -cb1[80].z
    mul r5.y, r5.y, cb1[80].x
    max r5.y, r5.y, l(-127.000000)
    exp r5.y, -r5.y
    mul r5.y, r5.y, cb1[80].y
    lt r5.z, l(5.960464478E-08), |r0.z|
    exp r5.w, -r0.z
    add r5.w, -r5.w, l(1.000000)
    div r5.w, r5.w, r0.z
    mad r0.z, -r0.z, l(0.240226507), l(0.693147182)
    movc r0.z, r5.z, r5.w, r0.z
    mul r0.z, r0.z, r5.y
    mad r0.y, r5.x, r0.y, r0.z
    mad_sat r5.xy, r2.wwww, cb1[78].wyww, cb1[78].zxzz
    mul r0.z, r2.w, r0.y
    exp r0.z, -r0.z
    min r0.z, r0.z, l(1.000000)
    max r0.z, r0.z, cb1[79].w
    add r0.z, r5.y, r0.z
    add r0.z, r5.x, r0.z
    min r0.x, r0.z, l(1.000000)
    dp3_sat r2.x, r2.xyzx, cb1[81].xyzx
    log r2.x, r2.x
    mul r2.x, r2.x, cb1[82].w
    exp r2.x, r2.x
    mul r2.xyz, r2.xxxx, cb1[82].xyzx
    mad r0.w, r0.w, r1.w, -cb1[81].w
    max r0.w, r0.w, l(0.000000)
    mul r0.y, r0.w, r0.y
    exp r0.y, -r0.y
    min r0.y, r0.y, l(1.000000)
    add r0.yz, -r0.yyxy, l(0.000000, 1.000000, 1.000000, 0.000000)
    mul r2.xyz, r0.yyyy, r2.xyzx
    add r0.y, -r5.x, l(1.000000)
    mul r2.xyz, r0.yyyy, r2.xyzx
    mad r4.yzw, cb1[79].xxyz, r0.zzzz, r2.xxyz
  endif
  mul r0.yzw, r0.xxxx, r3.xxyz
  mad r1.w, r3.w, r3.w, l(1.000000)
  mul r1.w, r1.w, l(0.0596831031)
  mad r2.xyz, cb1[74].xyzx, r1.wwww, cb1[76].xyzx
  mad r1.w, -cb1[73].w, cb1[73].w, l(1.000000)
  mul r2.w, r4.x, l(12.566371)
  sqrt r3.w, r4.x
  mul r2.w, r2.w, r3.w
  max r2.w, r2.w, l(0.001000)
  div r1.w, r1.w, r2.w
  mad_sat r2.xyz, cb1[75].xyzx, r1.wwww, r2.xyzx
  mul r2.xyz, r2.xyzx, l(255.000000, 255.000000, 255.000000, 0.000000)
  add r3.xyz, -r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  mul r2.xyz, r2.xyzx, r3.xyzx
  mad r2.xyz, r2.xyzx, r0.xxxx, r4.yzwy
  mad o0.xyz, r1.xyzx, r0.yzwy, r2.xyzx
else
  mov o0.xyz, r1.xyzx
endif
mov o1.z, l(1.000000)
ret
// Approximately 0 instruction slots used

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
